我有以下项目结构
SampleProject
com
python
example
source
utils
ConfigManager.py
conf
constants.cfg
如何从ConfigManager.py访问constants.cfg。
我有个限制
另外,如果我表示如下内容,我可以访问该文件。但我不想每次都把刀锋还给你
filename = ..\\..\\..\\..\\..\\..\\constants.cfg`
目前我正在做这样的事情。但只有当constants.cfg和ConfigManager.py位于同一目录中时,此操作才有效
currentDir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
file = open(os.path.join(currentDir,'constants.cfg'))
您可以在Python 3.0+中使用pathlib包
这将获取包含在SampleProject文件夹中的任何文件的路径 跨不同的平台。
然后用文件路径作为参数调用函数:
然后是通常的程序:
如果在项目树的根目录中有某个模块,请说config_loader.py,如下所示:
然后在ConfigManager.py或任何其他需要配置的模块中:
你甚至可以让你的config_loader.py返回配置文件。
如果} :
conf
是一个Python包,那么可以使用^{或者如果安装了} :
setuptools
–^{如果} module 。
constants.cfg
不在包中,则将其路径作为命令行参数传递,或在环境变量(例如CONFIG_MANAGER_CONSTANTS_PATH
)中设置,或从固定的默认路径集(例如os.path.expanduser("~/.config/ConfigManager/constants.cfg")
)中读取。要找到放置用户数据的位置,可以使用^{如果可以从不同目录运行
ConfigManager.py
,则不能使用返回当前工作目录的os.getcwd()
。由于相同的原因,相对路径"../../..."
无法工作。如果您确定文件系统中
ConfigManager.py
和constants.cfg
的相对位置不会改变:相关问题 更多 >
编程相关推荐