(Python) 为什么我在文件函数中总是必须输入绝对路径?
比如说,我有这些文件:
C:\42\main.py
还有
C:\42\info.txt
如果我想在main.py里面读取info.txt,我就得输入"C:\42\info.txt",而不能只输入"info.txt"。
这样是正常的吗?
如果不是,我该怎么解决这个问题呢?
3 个回答
1
与其把路径写死在代码里,不如用 sys.path[0]
来找到脚本的路径。你可以选择切换到这个路径,或者直接在文件名中使用这个路径:
os.path.join(sys.path[0], 'info.txt')
5
应该是这样的。相对路径是相对于程序当前的工作目录,而不是你的脚本所在的目录。
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