2013-10-01 59 views
0

我無法在'gi.repository通知'中顯示新行。它適用於我在程序中使用字符串常量,但是當我使用ConfigParser類從配置文件讀取字符串時失敗。python gi.repository通知和新行「 n」

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讀取時未被特別處理,它被解釋爲litreral \n

如果你想換行,就繼續到下一行的選項字符串:

[NOTIFICATIONS] 
test1 = Hello, 
     {username}! 

開始用空格每一行被視爲上一行的延續,空白將被刪除,但換行符住:

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

哦哇。這非常直接和簡單。非常感謝你。 – user2772570