为什么当我运行这行代码时:
print ("syntax %(name,name,name)",sys.stderr)
我收到以下错误:
('syntax %(name,name,name)', <open file '<stderr>', mode 'w' at 0x01CE60D0>)
那不是错误。
当你这样做时sys.stderr
,你正在打印它的表示,即<open file '<stderr>', mode 'w' at blah>
. 我不熟悉该sys
模块,所以我不确定你应该做什么。然而,这里有一个关于它的文档的链接。
您似乎使用的是 Python 2.x。在这里,print
是一个语句,您正在将一个元组打印到stdout
.
你可以实现你想要的
print >> sys.stderr, "syntax %(name,name,name)"
但是这个字符串对我来说似乎很奇怪,尤其是那%(name,name,name)
部分。但是,由于您没有告诉我们您真正想要打印什么,所以只能这样做。
如果你想print()
作为一个函数使用,无论是在 Python 3.x 中还是在 using 之后from __future__ import print_function
,你都应该遵循以下语法print()
:
print("syntax %(name,name,name)", file=sys.stderr)
另一个问题似乎是您正在打印的字符串:
"syntax %(name,name,name)"
类似于我的字符串格式,您省略了参数并使用了错误的语法。
所以,看你想做什么,
"syntax %(name)s%(name)s%(name)s" % some_dict_having_name_as_a_key
可能是你想要的。