文件处理有三个过程:打开文件、操作文件、关闭文件

一、打开文件

打开文件,需要指定文件的路径、打开方式(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()