文件系统操作
os/pathlib 目录操作、文件遍历 glob、临时文件 tempfile
文件系统操作
os 和 pathlib 模块让你用 Python 操作文件和目录——创建、遍历、移动、删除。
学完本章你将掌握: 路径操作、目录遍历、文件检查、创建删除。
一、os.path 基础
python
import os
print(os.getcwd()) # 当前工作目录
print(os.path.exists("test.txt")) # 文件/目录是否存在
print(os.path.isfile("test.txt")) # 是文件吗
print(os.path.isdir("mydir")) # 是目录吗
# 路径操作
path = os.path.join("data", "report.txt")
print(os.path.basename(path)) # report.txt
print(os.path.dirname(path)) # data
print(os.path.getsize("test.txt")) # 文件大小(字节)
二、目录遍历
python
# 列出目录内容
for item in os.listdir("."):
print(item)
# 递归遍历所有文件
for root, dirs, files in os.walk("."):
for f in files:
full = os.path.join(root, f)
print(full)
三、创建和删除
python
# 创建目录
os.makedirs("a/b/c", exist_ok=True) # 递归创建,存在不报错
# 删除文件
os.remove("test.txt") # 文件不存在会报错
# os.rmdir("mydir") # 只能删空目录
import shutil
shutil.rmtree("a") # 递归删除(含内容)
四、文件移动与复制
python
import shutil
shutil.copy("src.txt", "dst.txt") # 复制
shutil.move("old.txt", "new.txt") # 移动/重命名
五、pathlib(现代方式)
python
from pathlib import Path
p = Path("data") / "report.txt"
print(p.exists()) # 是否存在
print(p.name) # report.txt
print(p.parent) # data
print(p.suffix) # .txt
# 遍历
for f in Path(".").glob("*.py"):
print(f)
# 读写
content = Path("test.txt").read_text(encoding="utf-8")
Path("out.txt").write_text("hello", encoding="utf-8")
💡 pathlib 更推荐:面向对象、跨平台、代码更简洁。
小结
os.path处理路径,os.listdir/os.walk遍历os.makedirs/os.remove创建删除shutil.copy/shutil.move复制移动- Pathlib 是现代首选,代码更优雅
小练习
- 列出当前目录下所有
.py文件 - 创建一个
backup目录并复制一个文件过去