例如,如果我有:
C:\42\main.py
和
C:\42\info.txt
,我想从 main.py 读取 info.txt,我必须输入“C:\42\info.txt ” 而不是“info.txt”。
应该是这样吗?
如果没有,我该如何解决?
例如,如果我有:
C:\42\main.py
和
C:\42\info.txt
,我想从 main.py 读取 info.txt,我必须输入“C:\42\info.txt ” 而不是“info.txt”。
应该是这样吗?
如果没有,我该如何解决?
您可以指定相对于脚本所在位置的路径。我在编写单元测试时一直这样做。
每个 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
它应该是这样的。相对路径是相对于进程的当前工作目录,而不是脚本所在的目录。
您可以使用 找到脚本的路径sys.path[0]
,而不是对其进行硬编码,chdir
或者直接在文件名中使用它或使用它:
os.path.join(sys.path[0], 'info.txt')