根据传入的参数创建配置文件 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 个别零件。这有两个主要优点:
- 每个环境的配置内容是一致的
- 任何其他程序员都可以轻松遵循这些设置
您的配置文件条目可能如下所示(我使用了一个不太通用且更接近 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]
而不同,并且您希望它是固定的和一致的,您应该为特定的环境创建一个配置文件环境并坚持下去。
我想创建一个配置变量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 个别零件。这有两个主要优点:
- 每个环境的配置内容是一致的
- 任何其他程序员都可以轻松遵循这些设置
您的配置文件条目可能如下所示(我使用了一个不太通用且更接近 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]
而不同,并且您希望它是固定的和一致的,您应该为特定的环境创建一个配置文件环境并坚持下去。