python 文件操作

 文件打开方式(mode):

  r:打开一个文件只用于读,默认打开方式

  r+:打开一个文件用于读写。文件指针将会放在文件的开头。

  a:打开一个文件用于追加,文件如果存在,文件指针将会放在文件末尾,也就是说新的内容将会被写在已有内容之后

  a+:追加方式打开

  w:打开一个文件只用于写

  w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件

 

文件打开

  open(name[,mode[buf]])

  name 文件名

  mode 打开方式

  buf 缓冲buffering大小

 

文件读操作

  read([size]):读取文件,(读取size字节,默认读取)

  readlize([size]):读取一行

   如果读取的一行的长度len(line)>size 则返回size大小,如果len(line)<size ,则返回len(line)

  readlines([size]):读取完文件,返回每一行所组成的列表

   readlines的size是指每次读缓冲区相接近的大小字节的文件,返回每行组成的列表,可以通过io模块查看buf大小

  使用迭代去读取文件iter

    

  In [10]: f = open("luffy.txt")

  In [11]: iter_f = iter(f)

  In [12]: lines = 0

  In [13]: for line in iter_f:
  ....: lines += 1
  ....: print(line)
  ....:
  http://luffy.oldboyedu.com/

  http://luffy.oldboyedu.com/

  ......

文件写操作

  write(str):将字符写入到文件

    In [15]: f = open("luffy.txt",'w')

    In [16]: f.write('luffy.oldboyedu.com')

    In [17]: f.close()

    In [18]: cat luffy.txt
    luffy.oldboyedu.com

  writelines():写多行到文件

    In [19]: f = open('luffy.txt','w')

    In [20]: f.writelines('123456')

    In [21]: f.writelines(('python','php','java','go'))

    In [22]: f.close()

    In [23]: cat luffy.txt
    123456pythonphpjavago

    python 写文件机制,在写文件是,如果没有超过缓冲区大小,数据将不会写到硬盘,如果想在写的时候直接写入磁盘,需要调用f.close()或者f.flush()方法

 

文件关闭

  将写缓存同步到磁盘

  linux系统中每个进程打开文件的个数是有限的

  如果打开文件数到了系统限制,在打开文件就会失败

 

文件指针

·  操作文件指针可以通过seek方法:

  seek(offset, whence):移动文件指针

  offset:偏移量,可为负数

  whence:偏移相对位置

 

  偏移相对位置为os模块当中的SEEK_SET、SEEK_CUR、SEEK_END:

  os.SEEK_SET:表示文件的相对起始位置

  os.SEEK_CUR:表示文件的相对当前位置

  os.SEEK_END:表示文件的相对结束位置

 

  f.tell() 查看文件指针位置

  f.seek() 移动文件指针位置

  In [24]: f = open("luffy.txt",'r')

  In [25]: f.read(3)
  Out[25]: '123'

  In [26]: f.tell()
  Out[26]: 3

  In [27]: f.seek(0,os.SEEk_SET)

 

 文件属性

转载于:https://www.cnblogs.com/zbrook/p/8011376.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值