操作文件时, 一般需要经历如下步骤:
打开文件
操作文件
关闭文件
一, 打开文件
打开文件时, 需要指定文件路径和以何等方式打开文件, 打开后, 即可获取该文件句柄, 日后通过此文件句柄对该文件操作.
文件句柄 = open('文件路径', '模式')
打开文件的模式有:
r , 只读模式 [默认]
w, 只写模式 [不可读; 不存在则创建; 存在则清空内容;]
x, 只写模式 [不可读; 不存在则创建, 存在则报错]
a, 追加模式 [不可读; 不存在则创建; 存在则只追加内容;]
"+" 表示可以同时读写某个文件
r+, 读写 [可读, 可写] 覆盖前文, 从开始向后读末尾追加, 指针移动到最后
w+, 写读 [可读, 可写] 先清空, 再写, 再读写的内容, 一写指针就到最后
x+ , 写读 [可读, 可写] 先清空, 再写, 再读写的内容, 一写指针就到最后 文件存在即报错
a+, 写读 [可读, 可写] 打开的同时已经把指针移动到最后了
"b" 表示以字节的方式操作
rb 或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a+b
注: 以 b 方式打开时, 读取到的内容是字节类型, 写入时也需要提供字节类型
注意
r 与 r + 的区别
r 只读, r + 读写, 不创建
w 新建只写, w + 新建读写, 二者都会将文件内容清零 (以 w 方式打开, 不能读出. w + 可读写)
w + 与 r + 区别:
r+: 可读可写, 若文件不存在, 报错; w+: 可读可写, 若文件不存在, 创建
- f.read() #读取文件, 可读模式下可用, 按字符查找, 读取时可以指定读取多少字符
- readline() #只读一行 , 遇到 \ r or \n 为止
- f.write() #写入数据, 可写模式下可用
- f.tell() #查看指针当前位置
- f.seek() #跳转指针到该位置处
- fileno() #返回文件句柄在内核中的索引值, 以后做 IO 多路复用时可以用到
- flush(): #把文件从内存 buffer 里强制刷新到硬盘
- readable() #判断是否可读
- seekable() #判断是否可进行 seek 操作
- truncate() #按指定长度截断文件 , 指定长度的话, 就从文件开头开始截断指定长度, 不指定长度的话, 就从当前位置到文件尾部的内容全去掉.
- writeable() #判断文件是否可写
来源: http://www.bubuko.com/infodetail-2590041.html