Python中如何从父目录打开文本文件?(含目录结构及报错情况)
解决跨目录读取文件的路径错误问题
问题原因
你写的相对路径../Documents/hello.txt是基于程序运行时的当前工作目录,而不是second.py脚本本身所在的目录。比如你从Project目录运行main.py时,当前工作目录是Project,这时候../会指向Project的父目录,自然找不到目标文件。
解决方案
方法一:基于脚本目录构建绝对路径(推荐)
用Python内置的os模块,通过__file__获取当前脚本的绝对路径,再拼接目标文件的路径,这样不管在哪里运行程序都能稳定找到文件:
import os # 获取second.py所在的绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接hello.txt的路径:从Modules目录回退到Source,再进入Documents file_path = os.path.join(script_dir, '..', 'Documents', 'hello.txt') # 用with语句安全打开文件 with open(file_path, 'r') as file: content = file.read()
os.path.join会自动根据系统适配路径分隔符(Windows用\,Linux/macOS用/),避免手动写斜杠的兼容性问题。
方法二:直接使用固定绝对路径(临时应急)
如果只是临时测试,可以直接写文件的完整绝对路径,比如:
file = open('/你的项目绝对路径/Project/Source/Documents/hello.txt', 'r')
但这种方法换环境就会失效,不推荐在正式代码中使用。
内容的提问来源于stack exchange,提问作者Zer0 - Official
相关产品推荐
相关产品推荐

