(Python) 为什么我总是必须在文件函数中输入绝对路径?
例如,如果我有:
C:\42\main.py
和
C:\42\info.txt
我想从 main.py 读取 info.txt,我必须输入“C:\42\info.txt”而不是“info.txt”。
应该是这样吗?
如果没有,我该如何修复它?
For instance, if I have:
C:\42\main.py
and
C:\42\info.txt
and I want to read info.txt from main.py, I have to input "C:\42\info.txt" instad of just "info.txt".
Is it supposed to be like that?
If not, how can I fix it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以指定相对于脚本所在位置的路径。我在编写单元测试时一直这样做。
每个 python 文件都有一个特殊的属性 -
__file__
- 存储该文件的路径。You can specify paths relative to where your script is. I do it all the time when writing unittests.
Every python file has a special attribute --
__file__
-- that stores the path to that file.应该是这样的。相对路径是相对于进程的当前工作目录,而不是脚本所在的目录。
It is supposed to be like that. Relative paths are relative to the process's current working directory, not the directory that your script resides in.
您可以使用
sys.path[0]
找到脚本的路径,而不是对其进行硬编码,然后使用chdir
或直接在文件名中使用它:Rather than hardcoding it, you can find the script's path using
sys.path[0]
, and eitherchdir
to it or use it directly in the filename: