# 读取全部with open("data.txt", encoding="utf-8") as f: text = f.read()# 逐行迭代(节省内存)with open("data.txt", encoding="utf-8") as f: for line in f: print(line.rstrip("\n"))# 读取所有行with open("data.txt", encoding="utf-8") as f: lines = [l.rstrip() for l in f]# 写入with open("output.txt", "w", encoding="utf-8") as f: f.write("Hello\n") f.writelines(["line1\n", "line2\n"])# 追加with open("log.txt", "a", encoding="utf-8") as f: f.write("新日志\n")
二进制读写
with open("image.png", "rb") as f: data = f.read()with open("copy.png", "wb") as f: f.write(data)# 分块读取大文件with open("large.bin", "rb") as f: while chunk := f.read(4096): process(chunk)
pathlib(推荐,3.4+)
from pathlib import Pathp = Path("/tmp/data")# 路径拼接p / "file.txt" # Path("/tmp/data/file.txt")# 属性p.parent # Path("/tmp")p.name # "data"p.stem # "data"(无扩展名)p.suffix # ""p.with_suffix(".log") # Path("/tmp/data.log")# 检查p.exists()p.is_file()p.is_dir()# 创建 / 删除p.mkdir(parents=True, exist_ok=True)p.unlink() # 删除文件p.rmdir() # 删除空目录# 直接读写text = Path("data.txt").read_text(encoding="utf-8")Path("out.txt").write_text("content", encoding="utf-8")data = Path("img.png").read_bytes()# 遍历for f in Path(".").iterdir(): print(f)for f in Path(".").rglob("*.py"): print(f) # 递归Path("file.txt").resolve() # 绝对路径