写入控制台或文件python

时间:2013-07-29 18:06:58

标签: python file-io io console

我有一个功能:

def hello_world(output):
    output.write("Hello World")

并希望将这些传递给它:

file = io.open("myfile.txt", "w")
hello_world(file)
hello_world(sys.stdout)

我不知道这是否正确。我也得到NameError: global name 'sys' is not defined 你会怎样做我想做的事?

5 个答案:

答案 0 :(得分:2)

尝试添加:

import sys

到文件顶部

答案 1 :(得分:2)

  

NameError:未定义全局名称“sys”

由python文件顶部的import sys修复

另外,it's a horrible idea to have variables named file or list or dict or pretty much any default type

答案 2 :(得分:1)

您应该在脚本的开头添加此行:

import sys

答案 3 :(得分:1)

你忘了import sys

sys是python的“系统特定参数和函数”模块 - python docs

这样做是为python文件获取系统特定的标准输出管道,以输出。如在流中它可以写入:)。

文件和sys.stdoutsys.stdinsys.stderr都只是要写入的流。

一般情况下,如果它显示NameError您忘记导入某些内容,或者您​​没有正确定义内容:)

您可能想要将其重写为opens_file等,File和其他类似的单词(如果您执行random = 3)从来都不好解决,因为它们被用作各种Python对象的名称或内部 - 你想要确保你没有碰撞,即使Python应该巧妙地解决这些问题:)

答案 4 :(得分:1)

您需要导入sys模块:

import sys

然后您可以使用sys.stdout