0

我无法在“gi.repository Notification”中显示新行。当我在程序中使用字符串常量时它可以工作,但是当我使用 ConfigParser 类从配置文件中读取字符串时它会失败。

测试.ini

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

测试.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()

当前程序的输出将是:'Hello\nsudo!' 但是,如果我在我的程序中硬编码这个字符串(注释行),那么它会按原样显示。

4

1 回答 1

0

\n当 a 读取配置文件时,不对其进行特殊处理ConfigParser,它被解释为 litreral \n

如果您想要换行符,只需在下一行继续选项字符串:

[NOTIFICATIONS]
test1 = Hello,
        {username}!

以空格开头的每一行都被视为前一行的延续,空格将被删除,但换行符保留:

>>> print(cfg.get('NOTIFICATIONS', 'test1'))
Hello,
{username}!
>>> 
于 2013-10-01T16:47:56.903 回答