('syntax%(name,name,name)',<open file =“”'<stderr =“”>',模式'w'在0x01CE60D0&gt;)?</open>

时间:2013-10-17 07:59:20

标签: python sys

为什么我运行这行代码:

print ("syntax %(name,name,name)",sys.stderr)

我收到以下错误:

('syntax %(name,name,name)', <open file '<stderr>', mode 'w' at 0x01CE60D0>)

2 个答案:

答案 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

可能是你想要的。