例如,如果我有:
C:\ 42 \ main.py
和
C:\ 42 \ info.txt
我想从main.py读取info.txt,我必须输入“C:\ 42 \ info.txt”只是“info.txt”的instad。
它应该是那样的吗? 如果没有,我该如何解决?
答案 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')