教程 python tutorial

文件路径与异常处理

文件路径在处理文件操作时至关重要,尤其是跨平台开发中路径格式的差异。Python 提供了强大的 os 和 pathlib 模块,以及完善的异常处理机制来提升程序的健壮性。

文件路径基础

操作系统路径分隔符不同:

  • Windows:\(反斜杠)
  • macOS/Linux:/(正斜杠)

避免硬编码路径,推荐使用 os.path 或 pathlib:

python
import os

# 拼接路径
path = os.path.join("folder", "file.txt")
print(path)

使用 pathlib 管理路径

pathlib 提供面向对象的路径操作方式,是现代 Python 推荐的路径处理方法:

python
from pathlib import Path

p = Path("folder") / "file.txt"
print(p)

判断文件或目录是否存在:

python
if p.exists():
    print("文件存在")
if p.is_file():
    print("这是一个文件")

创建目录:

python
p = Path("data/output")
p.mkdir(parents=True, exist_ok=True)

文件不存在的处理方式

尝试打开一个不存在的文件时,会抛出 FileNotFoundError:

python
try:
    with open("nofile.txt", "r") as f:
        print(f.read())
except FileNotFoundError:
    print("文件不存在,请检查路径")

异常处理基础

常见的文件相关异常:

异常类型 描述
FileNotFoundError 文件未找到
PermissionError 权限不足
IsADirectoryError 路径是一个目录而不是文件
IOError 通用输入输出错误

通用异常处理语法:

python
try:
    # 可能出错的操作
    with open("example.txt") as f:
        data = f.read()
except Exception as e:
    print(f"发生错误: {e}")

推荐做法

  • 使用 pathlib 代替字符串拼路径;
  • 所有文件操作都应考虑异常处理;
  • 提前判断文件是否存在,可减少不必要错误;
  • 错误信息尽量友好提示用户。

总结

  • 文件路径的处理应跨平台、可维护;
  • os.path 和 pathlib 都能进行路径拼接与判断;
  • 利用 try-except 捕获文件异常,提升程序鲁棒性;
  • 良好的路径管理与异常处理是文件操作的基础保障。