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

时间:2010-04-11 00:05:23

标签: python absolute-path

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

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

它应该是那样的吗? 如果没有,我该如何解决?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:5)

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

答案 2 :(得分:1)

您可以使用sys.path[0]找到脚本的路径,也可以使用chdir或者直接在文件名中使用

,而不是对其进行硬编码。
os.path.join(sys.path[0], 'info.txt')