我有一个模块,用模块目录中的数据库处理数据库,文件结构如下
app/
foo.py
database/
__init__.py
bar.py
database.db
在我的bar.py
文件中,我有:
open("database.db")
当我导入此数据库模块时,它会出现错误,因为无法找到database.db
文件,但是当我使用open("database/database.db")
时它会起作用。有没有办法可以从任何其他目录打开此文件并让模块正确访问该文件?
答案 0 :(得分:3)
您可以使用__file__
。它保留当前python文件的路径。例如,您的bar.py
文件可能包含类似
from os import path
open(path.join(path.dirname(__file__), "database.db"))