-
文件读写:b模式
import requests url = ‘http://www.nnzhp.cn/wp-content/uploads/2018/01/601a335c499837a995ae10867fc36101.png‘ img = requests.get(url).content f = open(‘hhh.jpg‘, ‘wb‘) # bytes:以二进制模式打开,有wb、rb、ab组合 f.write(img)
拓展:
f = open(‘a.txt‘,encoding=‘utf-8‘) s = ‘dingfei,123456‘ names = [‘a‘,‘b‘,‘c‘] # import time f = open(‘haha.txt‘,‘w‘) f.write(‘test‘) # 不加下面这个这句,有时会在文件中看不到写入的数据,是因为有缓冲区,它会等缓冲区数据存储到一定的值才会写入到磁盘 f.flush() #立即把缓冲区的内容写到磁盘里面。 time.sleep(50) with open(‘b.txt‘) as f,open(‘c.txt‘) as fc:#自动关文件指针;一个with可以打开多个文件,逗号隔开即可。 f.write(‘aaa‘)
- 修改文件的2种方式:
1)
# 粗暴直接,适用于小文件,内容少
with open(‘geci‘,‘a+‘,encoding=‘utf-8‘) as f: f.seek(0) all = f.read() new_all = all.replace(‘二‘,‘一‘) f.seek(0) f.truncate() f.write(new_all) f.flush()
2)
# 替换一个文件中的内容,直接修改文件不好实现,一般把修改后的文件内容保存到bak文件,删除原来文件,rename bak文件。 # .**文件是隐藏文件 with open(‘geci.txt‘, ‘r+‘, encoding=‘utf-8‘) as f, open(‘.geci.bak‘, ‘w‘, encoding=‘utf-8‘) as ff: for i in f: newline = i.replace(‘一‘, ‘二‘) ff.write(newline) os.remove(‘geci.txt‘) os.rename(‘.geci.bak‘, ‘geic.txt‘)