gpt4 book ai didi

python - 在 config.py 中导入值

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:38 24 4
gpt4 key购买 nike

我想混合使用 config.py 方法和 ConfigParser 在 config.py 中设置一些默认值,这些默认值可以由用户在其根文件夹中覆盖:

import ConfigParser
import os

CACHE_FOLDER = 'cache'
CSV_FOLDER = 'csv'

def main():
cp = ConfigParser.ConfigParser()
cp.readfp(open('defaults.cfg'))
cp.read(os.path.expanduser('~/.python-tools.cfg'))
CACHE_FOLDER = cp.get('folders', 'cache_folder')
CSV_FOLDER = cp.get('folders', 'csv_folder')

if __name__ == '__main__':
main()

运行此模块时,我可以看到 CACHE_FOLDER 的值被更改。但是,当在另一个模块中时,我执行以下操作:

import config

def main()
print config.CACHE_FOLDER

这将打印变量的原始值(“缓存”)。

我做错了什么吗?

最佳答案

您显示的代码中的 main 函数仅当该模块作为脚本运行时才会运行(由于 if __name__ == '__main__' block )。如果您希望在加载模块时随时运行该轮次,则应该摆脱该限制。如果有额外的代码在 main 函数中实际执行一些有用的操作,除了设置配置之外,您可能还需要将该部分从设置代码中分离出来:

def setup():
# the configuration stuff from main in the question

def main():
# other stuff to be done when run as a script

setup() # called unconditionally, so it will run if you import this module

if __name__ == "__main__":
main() # this is called only when the module is run as a script

关于python - 在 config.py 中导入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21245547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com