python写文件
写文本文件
清除写w
案例:将锄禾这首诗写入test.txt文件中
# mode=w 没有文件就创建,有就清除内容,小心使用
with open('test.txt', 'w', encoding='utf-8') as fb:
fb.write('锄禾\n')
fb.write('锄禾日当午,汗滴禾下土;\n')
fb.write('谁知盘中餐,粒粒皆辛苦。\n')
运行后会发现之前写有静夜思的test.txt内容修改为锄禾,因为w
模式会清除原文件内容,所以小心使用。
追加写a
案例:将静夜思这首诗追加到test.txt文件中
# mode=a 追加到文件的最后
with open('test.txt', 'a', encoding='utf-8') as fb:
fb.write('静夜思\n床前明月光,疑是地上霜;\n举头望明月,低头思故乡。\n')
a
模式会将内容追加到末尾,写日志就是使用的追加模式。
排它写x
案例:在当前目录中创建文件test.txt,存在则不创建
with open('test.txt', 'x', encoding='utf-8') as fb:
fb.write('')
上面的代码运行会报错,因为已经存在test.txt
文件。担心会覆盖原来的文件时,可以使用排他写。
写二进制文件
在写模式后加b
即是写二进制模式,这种模式下写入内容为字节数据。
例如:将爬到的图片二进制信息写入文件中。
import requests
url = 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1247698508,1430079989&fm=26&gp=0.jpg'
response = requests.get(url) # 下载图片
with open('校花.jpg', 'wb') as f:
f.write(response.content)
运行上面的代码会下载指定的图片,并写入到当前目录的校花.jpg
文件中。(注意:读者在尝试这段代码时肯定会出错,更换图片的url地址即可)
读写文件
有时候需要能够同时读写文件,在模式后面加上+
号即可给读模式添加写,给写模式添加读。
with open('test.txt', 'r+', encoding='utf-8') as f:
# 读文件
print(f.read())
f.write('草\n离离原上草,一岁一枯荣;\n野火烧不尽,春风吹又生!\n')
输出:
锄禾
锄禾日当午,汗滴禾下土;
谁知盘中餐,粒粒皆辛苦。
静夜思
床前明月光,疑是地上霜;
举头望明月,低头思故乡。