根据传入的参数创建配置文件 python

create a config file from args passed in python

我想创建一个配置变量section1.xml_file

config.py:

[section1]
xml_file = 'String1' + sys.argv[1] + 'String2'

示例:

Input: config.py Test1

Output: xml_file = String1Test1String2

Input: config.py Test2

Output: xml_file = String1Test2String2

您不想在运行时实际更改 config 文件的内容。配置是根据特定环境对设置的静态描述,它不应​​该包含任何使配置设置本身适应运行时参数的魔法(例如sys.argv)。

如果您想根据传递给 python 脚本的参数更改 xml 文件名,您可以将文件名的格式描述放入配置中,然后在运行时加载该字符串,并且 replace/insert 个别零件。这有两个主要优点:

  1. 每个环境的配置内容是一致的
  2. 任何其他程序员都可以轻松遵循这些设置

您的配置文件条目可能如下所示(我使用了一个不太通用且更接近 real-world 设置的示例):

[assets]
xml_file_format = '/usr/share/basepath/{subpath:s}/assets/project.xml'

在您的 python 代码中,您执行:

import ConfigParser
cfg = ConfigParser.RawConfigParser()
xmlfile = cfg.get('assets', 'xml_file_format').format(subpath=sys.argv[1])

如果您的 整个环境 因传递的 sys.argv[1] 而不同,并且您希望它是固定的和一致的,您应该为特定的环境创建一个配置文件环境并坚持下去。