(Python) 为什么我在文件函数中总是必须输入绝对路径?

0 投票
3 回答
861 浏览
提问于 2025-04-15 21:28

比如说,我有这些文件:
C:\42\main.py
还有
C:\42\info.txt
如果我想在main.py里面读取info.txt,我就得输入"C:\42\info.txt",而不能只输入"info.txt"。

这样是正常的吗?
如果不是,我该怎么解决这个问题呢?

3 个回答

1

与其把路径写死在代码里,不如用 sys.path[0] 来找到脚本的路径。你可以选择切换到这个路径,或者直接在文件名中使用这个路径:

os.path.join(sys.path[0], 'info.txt')
5

应该是这样的。相对路径是相对于程序当前的工作目录,而不是你的脚本所在的目录。

10

你可以指定相对于你的脚本所在位置的路径。我在写单元测试的时候经常这么做。

每个Python文件都有一个特殊的属性叫做 __file__,它用来存储这个文件的路径。

py_file= os.path.abspath(__file__) # path to main.py
py_dir = os.path.dirname(py_file) # path to the parent dir of main.py
txt_file = os.path.join(py_dir, 'info.txt') # path to info.txt

撰写回答