写入控制台或文件蟒蛇

问题描述:

我有一个函数:写入控制台或文件蟒蛇

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 你会怎么做我想做的?

尝试添加:

import sys 

到您的文件

你应该在你的脚本的开头加入这一行:

import sys 

你忘了import sys

sys是蟒蛇的“特定于系统的参数和功能”模块 - python docs

这样做是得到python文件的系统特定标准输出管道输出。如在一个流中它可以写入:)。

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

一般来说,如果说NameError你要么忘了进口的东西,或者你没有正确定义的东西:)

你可能要重写,作为opened_file或类似File和类似的一些换句话说一样,如果你做的random = 3永远都不好解决,因为它们被用作各种Python对象或内部的名称 - 并且你想确保你没有碰撞,即使Python应该巧妙地解决这些问题:)

你需要进口sys模块:

import sys 

然后你可以使用sys.stdout之后。

NameError: global name 'sys' is not defined

通过import sys固定的顶部在你的Python文件

顶部顺便说一句,it's a horrible idea to have variables named file or list or dict or pretty much any default type