2017-10-18 40 views
0
******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) 

我確實有包含多個節的配置文件。部分名稱應該作爲變量傳遞。我正在嘗試上面的代碼,但它失敗,錯誤「無效的語法」。python如何將配置解析器中的節名稱作爲變量傳遞

錯誤:

文件 「./testprog.py」,第14行 打印VAL1 ^ 語法錯誤:無效的語法

這顯然我覺得上面的語法parser.get代碼無效。任何建議如何傳遞段名稱作爲變量,以便它可以讀取該特定的部分並顯示值。

幫助將不勝感激。

+0

你使用Python 3嗎?如果是這樣,那麼你需要添加圓括號到'print' –

+0

@TomKarzes no使用python 2.6 –

+0

我只能告訴你,我得到的是Python 3的語法錯誤,但與Python 2沒有關係。有可能你無意中獲取Python 3。 –

回答

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) 
+0

Sadia Arif:謝謝你的工作 –

相關問題