0

例如,如果我有:
C:\42\main.py

C:\42\info.txt
,我想从 main.py 读取 info.txt,我必须输入“C:\42\info.txt ” 而不是“info.txt”。

应该是这样吗?
如果没有,我该如何解决?

4

3 回答 3

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
于 2010-04-11T00:14:49.967 回答
5

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

于 2010-04-11T00:09:56.980 回答
1

您可以使用 找到脚本的路径sys.path[0],而不是对其进行硬编码,chdir或者直接在文件名中使用它或使用它:

os.path.join(sys.path[0], 'info.txt')
于 2010-04-11T00:14:27.890 回答