Python 检查文件与目录是否存在:实战指南
Python 检查文件与目录是否存在:实战指南
为什么检查路径存在性很重要
构建健壮的 Python 应用时,常需在读取、写入、删除等操作前确认文件或目录是否存在。跳过此检查可能导致 运行时错误 和意外崩溃。本指南涵盖最可靠的方法,源自 Python 官方文档和最佳实践模式。
使用 os.path.exists()
标准库 os.path 模块提供直观的 exists() 函数,若路径指向现有文件或目录返回 True。这是简单存在性检查最常用的方法。
import os
from os import path
print(path.exists('guru99.txt')) # 文件存在则 True
print(path.exists('myDirectory')) # 目录存在则 True
典型用例
def check_item(path_str):
if path.exists(path_str):
print(f"{path_str} exists.")
else:
print(f"{path_str} does not exist.")
区分文件与目录
要识别现有路径的具体类型,Python 提供两个互补函数:isfile() 和 isdir()。仅当路径是常规文件或目录时分别返回 True。
print(path.isfile('guru99.txt')) # 是文件则 True
print(path.isdir('myDirectory')) # 是目录则 True
利用 pathlib – 现代方法
Python 3.4 引入 pathlib 模块,提供面向对象的文件系统路径接口。其 Path 对象提供 exists()、is_file()、is_dir() 等方法,许多开发者觉得语法更清晰。
from pathlib import Path
file_path = Path('guru99.txt')
print(file_path.exists()) # 文件或目录存在则 True
print(file_path.is_file()) # 是常规文件则 True
print(file_path.is_dir()) # 是目录则 True
推荐最佳实践
- 模块只导入一次;避免重复导入。
- 新项目优先用
Path对象,受益于更清晰语法。 - 写入操作前先检查存在性,防止覆盖或用
Path.mkdir()创建目录。 - 处理
FileNotFoundError异常,应对检查与操作间路径可能变化的情况。
快速参考
| 函数 | 返回 True 条件 |
|---|---|
os.path.exists() | 路径或目录存在 |
os.path.isfile() | 路径是现有常规文件 |
os.path.isdir() | 路径是现有目录 |
pathlib.Path.exists() | 路径或目录存在 (Python 3.4+) |
pathlib.Path.is_file() | 路径是现有常规文件 |
pathlib.Path.is_dir() | 路径是现有目录 |
详细文档请参考官方 os.path 和 pathlib 模块。
Python
- 验证并校准湿度传感器以实现精准测量
- 工业制动器安全高效检查全攻略
- 直流电机故障检测诊断分步指南:从断电到换向器排查
- Python 文件 I/O:掌握文件操作、读写与管理
- 精通 Python 目录与文件操作
- Python 获取当前日期和时间:实用指南
- Python print() 函数完全指南:基础用法、空行打印与自定义结束符
- Python print 不换行:掌握 end 参数及其他技巧
- Python JSON:编码、解码与文件处理实战指南
- Python 计算平均值:从循环到 NumPy 的四种实战方法
- Python 开发环境搭建完整指南:跨平台安装与配置
- Python 文件 I/O:掌握输入输出操作