为什么我运行这行代码:
print ("syntax %(name,name,name)",sys.stderr)
我收到以下错误:
('syntax %(name,name,name)', <open file '<stderr>', mode 'w' at 0x01CE60D0>)
答案 0 :(得分:5)
这不是错误。
当您执行sys.stderr
时,您正在打印它的表示形式,即<open file '<stderr>', mode 'w' at blah>
。我不熟悉sys
模块,因此我不确定应该做什么。 Here's但是指向文档的链接。
答案 1 :(得分:1)
您似乎使用Python 2.x.在这里,print
是一个声明,您正在将一个元组打印到stdout
。
你可以用
达到你想要的效果print >> sys.stderr, "syntax %(name,name,name)"
但这个字符串对我来说似乎很奇怪,尤其是%(name,name,name)
部分。但是,由于您没有告诉我们您真正想要打印的内容,所以可以做到这一切。
如果您想将print()
用作函数,无论是在Python 3.x中还是在使用from __future__ import print_function
之后,您都应该遵守syntax of print()
:
print("syntax %(name,name,name)", file=sys.stderr)
另一个问题似乎是您要打印的字符串:
"syntax %(name,name,name)"
类似于我String formatting,你省略了参数和使用了错误的语法。
所以,取决于你想做什么,
"syntax %(name)s%(name)s%(name)s" % some_dict_having_name_as_a_key
可能是你想要的。