从python中传递的args创建配置文件

时间:2017-02-06 09:53:29

标签: python python-3.x parameter-passing config argparse

我想创建一个配置变量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

1 个答案:

答案 0 :(得分:1)

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

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

  1. 配置的内容按环境一致
  2. 任何其他程序员都可以轻松地按照设置进行操作
  3. 您的配置文件条目可能如下所示(我使用的示例不那么通用,更接近实际设置):

    sys.argv

    在你的python代码中,你可以:

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

    如果您的整个环境因传递的import ConfigParser cfg = ConfigParser.RawConfigParser() xmlfile = cfg.get('assets', 'xml_file_format').format(subpath=sys.argv[1]) 而异,并且您希望它是固定且一致的,您应该为该特定环境创建配置文件并坚持下去