2013-10-01 6 views
0

나는 'gi.repository 알림'에서 새 줄을 표시 할 수 아니에요 알리고 새로운 라인 "\ n"gi.repository. 그것은 프로그램 내에서 문자열 상수를 사용할 때 작동하지만 ConfigParser 클래스를 사용하여 구성 파일에서 문자열을 읽을 때 실패합니다.파이썬은

test.ini

[NOTIFICATIONS] 
test1 = Hello,\n{username}! 

test.py :

import ConfigParser 
from gi.repository import Notify 

# notifyText = "Hello, {username}" - will work 
data = {'username': 'sudo', 'test': 'test'} 


if __name__ == '__main__': 
    cfg = ConfigParser.ConfigParser()        
    cfg.read('test.ini') 
    notifyText = cfg.get('NOTIFICATIONS', 'test1').format(**data) 

    Notify.init('Test') 
    notification = Notify.Notification('Test', notifyText) 
    notification.show() 

는 현재 프로그램의 출력이 될 것이다 : '! 안녕하세요 nsudo \' 그러나, 내 하드 코드를이 문자열 (주석 처리 된 줄) 내 프로그램을 누른 다음 그것을 표시해야합니다.

답변

0

\n은 설정 파일을 ConfigParser으로 읽을 때 특별히 처리되지 않으므로, \n으로 해석됩니다. 당신이 줄 바꿈을하려면

, 그냥 다음 줄에 옵션 문자열을 계속 :

[NOTIFICATIONS] 
test1 = Hello, 
     {username}! 

공백으로 시작하는 각 라인은 이전 라인의 연속으로 처리가 공백이 제거됩니다 만, 줄 바꿈이 숙박 :

>>> print(cfg.get('NOTIFICATIONS', 'test1')) 
Hello, 
{username}! 
>>> 
+0

을 오 와우. 그렇게 간단하고 쉽습니다. 고맙습니다. – user2772570