Python,如何在同一目录中查找文件
假设我有两个文件,a.py和b.txt,它们在同一个文件夹里。我不能保证这个文件夹在哪里,但我知道b.txt一定和a.py在同一个文件夹里。现在,a.py需要访问b.txt,我该怎么找到b.txt的路径呢?如果用户从其他文件夹运行这个程序,像"./b.txt"这样的写法就不管用了。
2 个回答
5
使用 __file__
这个变量:
os.path.join(os.path.dirname(__file__), "b.txt")
5
如果你想知道主脚本的位置,即使是在一个被导入的模块中运行的代码里,你需要使用 sys.argv[0]
,而不是 __file__
。(sys.argv[0]
总是指向主脚本的路径;你可以查看这个链接了解更多信息:http://docs.python.org/library/sys.html#sys.argv)
如果你想知道当前模块的位置,即使它是被其他脚本导入的,按照马丁的说法,你应该使用 __file__
。
下面是一个使用 sys.argv[0]
的方法:
import os, sys
dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))
print os.path.join(dirname, "b.txt")