我正在尝试使用格式化字符串向sys.stderr打印消息,但最后我得到了一个神秘的%。
如果我写:
sys.stderr.write("One argument (file name) expected, got %d" % (len(sys.argv) -1))
我得到了输出:
One argument (file name) expected, got 0%
如果我用打印功能替换它,它的行为与预期的一样。此外,%有一个白色背景,所以它可能是我的shell无法识别的字符。
答案 0 :(得分:7)
%
可能是缺少换行符的zsh
shell标记输出。
print
添加换行符,在使用sys.stderr.write()
时手动添加一行:
sys.stderr.write("One argument (file name) expected, got %d\n" % (len(sys.argv) -1))