(蟒蛇)为什么我总是要输入文件的功能绝对路径?
-
26-09-2019 - |
题
例如,如果我有:结果 C:\ 42 \ main.py结果 和结果 C:\ 42 \ info.txt结果 我想从main.py读info.txt,我要输入 “C:\ 42 \ info.txt” 只是 “info.txt” 的instad
。时,它应该是这样呢?结果 如果没有,我怎么能解决这个问题?
解决方案
您可以指定相对于您的脚本路径。编写单元测试时,我做这一切的时候。
每个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')
不隶属于 StackOverflow