Python,如何在同一目录中查找文件

2 投票
2 回答
6925 浏览
提问于 2025-04-15 13:47

假设我有两个文件,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")

撰写回答