使用格式化字符串打印时获取奇怪的%

时间:2014-09-09 15:31:49

标签: python

我正在尝试使用格式化字符串向sys.stderr打印消息,但最后我得到了一个神秘的%。

如果我写:

 sys.stderr.write("One argument (file name) expected, got %d" % (len(sys.argv) -1))

我得到了输出:

One argument (file name) expected, got 0%

如果我用打印功能替换它,它的行为与预期的一样。此外,%有一个白色背景,所以它可能是我的shell无法识别的字符。

1 个答案:

答案 0 :(得分:7)

%可能是缺少换行符的zsh shell标记输出。

print添加换行符,在使用sys.stderr.write()时手动添加一行:

sys.stderr.write("One argument (file name) expected, got %d\n" % (len(sys.argv) -1))