如何引用一个相对于原始脚本的文件?

问题描述 投票:0回答:1

我自己写了一个模块(即my_module.py)。这是访问位于同一目录下的数据库,只需用'database.db'的路径打开它。但是当我使用我的模块时,'database.db'引用的是我的模块所在的目录。

例如,我有以下目录结构。

/main
  /my_module
    my_module.py
    database.db
  script.py

所以如果我现在直接在my_module.py中使用'database.db',它就会指向 /main/my_module/database.db. 但如果我在script.py中使用my_module,它就会指向 /main/database.db 导致错误。

所以我的问题是:如何才能让一个路径相对指向模块脚本 my_module.py? (这样我就可以在任何地方使用它)非常感谢您的回答!我自己写了一个模块(即my_module.py)。

python module path relative-path
1个回答
0
投票

script.py 试用 os.path 来获取脚本目录。 然后你可以创建一个数据库文件的相对路径。

import os
maindir = os.path.dirname(__file__)
my_module_dir = os.path.join(maindir, 'my_module')
db_path = os.path.join(my_module_dir, 'database.db')
© www.soinside.com 2019 - 2024. All rights reserved.