文件处理有三个过程:打开文件、操作文件、关闭文件
一、打开文件
打开文件,需要指定文件的路径、打开方式(r w a r+ w+ a+ b)、编码方式
方法1:
1 f1 = open('testfile', mode='r', encoding='utf-8') 2 #操作文件 3 f1.close()
此方法,完成文件操作后,需要关闭文件,否则文件会一直在内存中存在,浪费资源
方法2:
1 with open('testfile',mode='r',encoding='utf-8') as f1, open('testfile1',mode='r',encoding='utf-8') as f2: 2 f1.read() 3 f2.read()
此方法,完成文件操作后,会自动关闭文件,不需要手动关闭,且支持同时打开多个文件,建议使用此方法。
二、操作文件
打开方式
在不同的打开方式下,支持的操作不同
'r'模式:只支持读,不支持写
‘w’模式:只支持写,不支持读
'a'模式:只支持追加,不支持读
‘r+’模式:既支持读,也支持写,但需要注意光标位置
‘w+’模式:既支持写,也支持读,但需要注意光标位置
'a+'模式:既支持追加,也支持读,但需要注意光标位置
以上所有模式都支持b,如‘r+b’,即以bytes类型读取文件,多用于处理非文字类文件,如图片,视频等
1 f1 = open('testfile', mode='w') 2 f1.write('中国'.encode('gbk')) 3 f1.close()
建议对文件操作时,不要同时同时进行读写操作,光标容易乱。
常用方法
read() 一次性读
readlines() 一次性读,把每一行作文一个元素,放在列表中
readline() 一行一行读,需要配合for循环完成整个文件的读,不适用非文字类文件,如图片和视频等,这些文件是按bytes为单位的。
write()
seek() 移动光标
tell() 获取光标当前位置
truncate() 截取文件
关闭文件
close()