Z
ZHANK
文件与系统

文件系统操作

os/pathlib 目录操作、文件遍历 glob、临时文件 tempfile

文件系统操作

ospathlib 模块让你用 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 更推荐:面向对象、跨平台、代码更简洁。


小结

  1. os.path 处理路径,os.listdir/os.walk 遍历
  2. os.makedirs/os.remove 创建删除
  3. shutil.copy/shutil.move 复制移动
  4. Pathlib 是现代首选,代码更优雅

小练习

  1. 列出当前目录下所有 .py 文件
  2. 创建一个 backup 目录并复制一个文件过去