Python实现指定目录下多文件存在性校验,不存在则退出
解决方案
直接用os.path.exists()或者os.path.isfile()检查文件存在性,结合列表遍历就能实现需求。以下是完整代码:
import os import sys # 目标文件列表 target_files = ['a.txt', 'b.txt', 'c.txt'] # 指定检查的目录(当前目录用'.',也可写绝对路径如'/home/user/docs') check_dir = '.' # 遍历目标文件逐个检查 for file_name in target_files: # 自动拼接完整路径,适配不同系统的路径分隔符 file_path = os.path.join(check_dir, file_name) if not os.path.isfile(file_path): print(f"错误:文件 {file_name} 在目录 {check_dir} 中不存在") sys.exit(1) # 非0状态码标记异常退出 # 所有文件都存在时执行后续逻辑 print("所有目标文件均存在")
代码说明
os.path.join():避免手动拼接路径时的分隔符问题(Windows用\,Linux/macOS用/),保证跨平台兼容性。os.path.isfile():严格判断路径对应的是存在的文件,如果只需检查路径存在(包括目录),可以替换为os.path.exists()。sys.exit(1):遇到缺失文件立即终止程序,返回非0状态码,方便脚本在批量流程中判断执行结果。
简洁版(快速判断)
如果不需要定位具体缺失的文件,用all()函数可以简化代码:
import os import sys target_files = ['a.txt', 'b.txt', 'c.txt'] check_dir = '.' # 批量检查所有文件是否存在 all_exist = all(os.path.isfile(os.path.join(check_dir, f)) for f in target_files) if not all_exist: print("错误:存在未找到的文件") sys.exit(1) print("所有目标文件均存在")
内容的提问来源于stack exchange,提问作者Bokambo
相关产品推荐
相关产品推荐

