python如何将配置解析器中的节名称作为变量传递

时间:2017-10-18 03:06:09

标签: python configparser

******testfile.ini file*******
**[TEST]**
val1=1
val2=3

**[TEST1]**
..
..
**[TEST2]**
..
..
**[TEST3]**
..
..

*****testprog.py****

   #!/usr/bin/python

   import sys 
   import ConfigParser 
   import os

   section = sys.args[1]

   parser = ConfigParser.ConfigParser()

   parser.read('testfile.ini') 
   val1 =parser.get('{0}'.format(section),'val1') 
   val2 =parser.get('{0}'.format(section),'val2')

   print "Value 1 {0}".format(val1) 
   print "Value 2 {0}".format(val2)

我的配置文件包含多个部分。节名称应作为变量传递。我正在尝试上面的代码,但它失败,错误“无效的语法”。

错误:

文件“./testprog.py”,第14行     打印val1         ^ SyntaxError:语法无效

显然我认为语法parser.get上面的代码无效。任何建议如何将段名作为变量传递,以便它可以从该特定部分读取并显示值。

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

我认为您的代码应该由主程序调用,这样才能正常工作。并确保每个部分包含相同的变量名称。

#!/usr/bin/python

import sys
import ConfigParser
import os

section = sys.argv[1]

def test(section):
    parser = ConfigParser.ConfigParser()

    parser.read('testfile.ini')
    val1 =parser.get('{0}'.format(section),'val1')
    val2 =parser.get('{0}'.format(section),'val2')

    print "Value 1 {0}".format(val1)
    print "Value 2 {0}".format(val2)

if __name__ == "__main__":
    test(section)