2017-10-18 9 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 ^ にSyntaxError:無効な構文明らかに私は、構文parser.get上記のコードは無効であると思い

。セクション名を変数として渡し、そのセクションから読み込んで値を表示する方法を提案します。

大変助かります。

+0

Python 3を使用していますか?そうであれば、 'print'に括弧を追加する必要があります –

+0

@TomKarzes no Python 2.6を使用していません。 –

+0

Python 3では構文エラーが出ますが、意図せずに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:ありがとう、この作業 –

関連する問題