Python如何检查当前工作目录外的文件是否存在?
问题:使用os.path.isfile判断带~的路径返回False如何解决?
你尝试用os.path.isfile(f'~/Documents/project/data.csv')判断文件是否存在,但一直返回False,这不是因为os.path.isfile仅在当前目录生效,而是Python字符串中的~不会被自动解析为用户主目录,os.path模块无法识别这个符号,导致传入的路径是无效的。
解决方法:
方法1:用
os.path.expanduser()展开tilde路径
这个函数会把路径中的~替换为实际的用户主目录路径:import os target_path = os.path.expanduser('~/Documents/project/data.csv') exists = os.path.isfile(target_path) print(exists)方法2:使用
pathlib模块(Python3.4+推荐)pathlib是更现代的路径处理模块,支持自动解析~,写法更直观:from pathlib import Path # 方式一:直接展开tilde target_path = Path('~/Documents/project/data.csv').expanduser() print(target_path.is_file()) # 方式二:通过Path.home()拼接路径,更清晰 target_path = Path.home() / 'Documents' / 'project' / 'data.csv' print(target_path.is_file())
补充说明
os.path.isfile本身完全支持绝对路径判断,只要传入的路径是系统能识别的有效绝对路径,不管当前运行目录在哪里,都能正确返回文件是否存在的结果。
内容的提问来源于stack exchange,提问作者connor449
相关产品推荐
相关产品推荐

