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')

输出:

锄禾
锄禾日当午,汗滴禾下土;
谁知盘中餐,粒粒皆辛苦。
静夜思
床前明月光,疑是地上霜;
举头望明月,低头思故乡。
posted @ 2022-09-01 13:41  python心蓝  阅读(714)  评论(0编辑  收藏  举报