无论当前工作目录如何,都在模块中打开文件

时间:2013-06-29 13:24:40

标签: python file module

我有一个模块,用模块目录中的数据库处理数据库,文件结构如下

app/
  foo.py
  database/
    __init__.py
    bar.py
    database.db

在我的bar.py文件中,我有:

open("database.db")

当我导入此数据库模块时,它会出现错误,因为无法找到database.db文件,但是当我使用open("database/database.db")时它会起作用。有没有办法可以从任何其他目录打开此文件并让模块正确访问该文件?

1 个答案:

答案 0 :(得分:3)

您可以使用__file__。它保留当前python文件的路径。例如,您的bar.py文件可能包含类似

的内容
from os import path
open(path.join(path.dirname(__file__), "database.db"))