2017-10-18 7 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 with python 2.6 –

+0

파이썬 3에서는 문법 오류가 발생하지만 파이썬 2에서는 문법 오류가 발생합니다. 의도하지 않게 파이썬 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 : 감사합니다. –