欢迎来到簟纹灯影的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

文件的基本操作整理

基本语法

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, 
closefd=True, opener=None)

file表示文件的路径(绝对路径或者相对路径),也可以是要被封装的整数类型文件描述符。(如果是文件描述符,它会随着返回的 I/O 对象关闭而关闭,除非closefd被设为False。)

mode是一个可选字符串,用于指定打开文件的模式,默认是r,其他含义如下:

字符 意义
‘r' 读取(默认)
'w' 写入(先已空文件覆盖)
'x' 排他性创建,如果文件已存在则失效
'a' 写入,如果文件存在则在末尾追加
'b' 二进制模式(rb/wb/ab)
't' 文本模式(默认)(rt/wt/at)
'+' 更新(可读可写)(r+/w+/a+)

buffering是一个可选的整数,用于设置缓冲策略。(暂未使用过)

encoding是用于解码或者编码的编码名称。只在文本模式下使用。虽然初始是None,但实际上默认编码是依赖平台的。

errors是一个可选字符串参数,用于指定如何处理编码和解码错误(不能在二进制模式下使用)(基本不使用)

newline仅适用于文本模式,可以是 None,'','\n','\r' 和 '\r\n'。作换行符作用。

closefdFalse并且给出了文件描述符而不是文件名。那么当文件关闭时,底层文件描述符将保持打开状态。如果给出文件名则 closefd必须为 True (默认值),否则将引发错误。

opener 可以通过传递可调用的opener来使用自定义开启器。

示例:

with open('test.txt', 'w', encoding='utf8') as f: 
	f.write('This will be written to test')

#使用with可以省略调用 f.close()

文件的内置方法

# seek(按字节位移)
with open('test.py', 'rb') as fr:
    fr.seek(1)  # 1表示位移1位,默认从文件头开始
    fr.seek(1, 0)  # 1表示偏移1位,0表示从头开始  # b'\xad'
    fr.seek(2, 1)  # 1表示偏移1位,1表示从当前位置开始  # b'\xad'
    fr.seek(0, 2)  # 0表示偏移0位,2表示文件末开始,把指针移到文件末
    print(fr.read())  #

# tell(字节)  中 --> b'\xe4\xb8\xad'
with open('test.py', 'r', encoding='utf8') as fr:
    fr.seek(2, 0)
    print(fr.tell())

# read(n)字符
with open('test.py', 'r', encoding='utf8') as fr:
    print(fr.read(2))  # 读了6个字节

# truncate字节(截断)
with open('test.py', 'a', encoding='utf8') as fr:
    fr.truncate(7)  # 把2个字符后面的东西全清空

祝大家越来越好!!!

posted @ 2019-08-12 19:35  簟纹灯影  阅读(127)  评论(0编辑  收藏  举报