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