读写文件就是请求操作系统打开一个文件对象,进行读写。
-
python读文本文件:
# with已自动调用close()方法,避免文件对象占用资源 with open('/path/to/file', 'r') as f: print(f.read())
-
read:一次读取所有内容,适合小文件。保险起见,可以反复调用read(size)方法,size表示一次读取的大小。
-
readline: 每次读取一行,可循环读取。
-
readlines: 一次读取所有内容并按行返回list,适合读取配置文件。
for line in f.readlines(): print(line.strip()) # 把末尾的'\n'删掉*
-
读取二进制文件,比如图片,视频,tar包等,用’rb’模式打开文件即可。
file = open('/path/to/file', 'rb')
补充一个上传tar.gz文件的请求示例代码:
import requests data = open(package_path, 'rb').read() response = requests.post(url, headers=headers, data=data)
-
读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:
file = open('/path/to/file', 'r', encoding='gbk')
遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,可以忽略
file = open('/path/to/file', 'r', encoding='gbk', errors='ignore')
-
写文件:
标识符’w’或者’wb’表示写文本文件或写二进制文件with open('/path/to/file', 'w') as f: f.write('Hello, world!')
参考:添加链接描述