基本文件操作
打开文件
file = open(filename[, mode[, buffering]])
参数说明:
file -- 被创建的文件对象
filename -- 要创建或打开的文件名称
mode -- 可选参数,指定文件的打开模式
buffering -- 可选参数,指定读写文件的缓冲模式,值为0表示不缓存,值为1表示缓存,大于1表示缓冲区的大小,默认为缓存模式
mode参数的参数值说明
r -- 以只读模式打开文件
rb -- 以二进制格式打开文件,并且采用只读模式。一般用于非文本文件,如图片、声音等
r+ -- 打开文件后,可以读取文件,也可以写入新内容覆盖原有内容(从头开始覆盖)
rb+ -- 以二进制格式打开文件,并且采用读写模式。一般用于非文本文件,如图片、声音等
注意:mode参数选择以上4个值时,文件必须存在,否则会报错。选择以下参数打开文件时,没有文件会先创建新文件。
w -- 以只写模式打开文件
wb -- 以二进制格式打开文件,并且采用只写模式。一般用于非文本文件,如图片、声音等
w+ -- 打开文件后,先清空内容,在进行读写操作
wb+ -- 以二进制格式打开文件,并且采用读写模式。一般用于非文本文件,如图片、声音等
a -- 以追加模式打开一个文件
ab -- 以二进制格式打开文件,并且采用追加模式。
a+ -- 以读写模式打开文件,新内容会被写入到已有内容之后
ab+ -- 以二进制格式打开文件,并且采用追加模式。
打开文件时指定编码方式
file = open('test.txt', 'r', encoding='utf-8')
关闭文件
file.close()
打开文件时使用with语句
打开文件后,要及时关闭文件,如果忘记关闭可能会带来意想不到的问题。为了更好地避免此类问题发生,可以使用Python提供的with语句。在处理文件时,with语句执行完毕后可以自动关闭打开的文件。
with open('test.txt', 'r') as file:
pass
写入文件
with open('test.txt', 'w+') as file:
file.write('Python最强大\n')
file.write('Python最牛逼\n')
file.write('Python最无敌\n')
打开文件可以看到
image.png
读取文件
读取指定字符
with open('test.txt', 'r') as file:
print(file.read(9)) #读取前9个字符,结果输出Python最强大
默认是从头开始读取,如果需要读取中间的内容,就可以使用seek()方法将文件指针移动到新的位置,再读取。
with open('test.txt', 'r') as file:
file.seek(14) #移动指针到新的位置
print(file.read(9)) #读取前9个字符,结果输出Python最牛逼
注意
在使用seek()方法时,移动的字符个数是按一个汉字占两个字符、英文和数字点占一个字符计算的,这与read(size)方法不同。
网友评论