读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
用模块pathlib来处理文件,是一种更加简单的文件读写方法。 from pathlib import Path
path = Path("pi_million_digits.txt") contents = path.read_text(encoding="utf-8")
lines = contents.splitlines() pi_string = "" for line in lines: pi_string += line.lstrip()
birthday = input("Enter your birthday, in the form mmddyy: ") if birthday in pi_string: print("Your birthday appears in the first million digits of pi!") else: print("Your birthday does not appear in the first million digits of pi.")
写入文件用write_text()方法。
Path类提供了很多很有用的方法。如果指定的文件或文件夹存在,exists()方法返回True,否则返回False。
只读:rt、rb
存在,读
不存在,报错
t 是文本类型,b 是二进制类型
覆盖写:wt、wb
存在,清空再写
不存在,创建再写
创建写:xt、xb
存在,报错
不存在,创建再写
追加模式:at、ab
存在,尾部追加
不存在,创建再写
如果size未给定或为负则一次性读取文件所有内容,以字符串的形式返回结果: with open("new.txt", 'r', encoding='utf-8') as f: f.read()
with open("new.txt", 'r', encoding='utf-8') as f: f.read(1) # 读1个字符
只读取文件一行的内容,以字符串的形式返回结果: with open("new.txt", 'r', encoding='utf-8') as f: f.readline() # 读第一行 f.readline() # 继续读下一行
读取文件所有行,并且以列表的形式返回结果,一般配合for使用 with open("new.txt", 'r', encoding='utf-8') as f: for line in f.readlines(): line.strip() # 去掉换行符n
with open("new.txt", 'r', encoding='utf-8') as f: for line in f: print(line.strip())
from io import SEEK_END, SEEK_SET
with open("1.jpg", "rb") as f:
f.seek(0, SEEK_END)
print(f.tell())
f.seek(0, SEEK_SET)
data = f.read(1024) while data: print(data, end="") data = f.read(1024)</pre>
hasher = md5() hasher2 = sha256()
with open("1.jpg", "rb") as f: data = f.read(1024) while data:
hasher.update(data) hasher2.update(data) data = f.read(1024)
print(hasher.hexdigest()) print(hasher2.hexdigest())
本文作者:a
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!