写入控制台或文件蟒蛇
问题描述:
我有一个函数:写入控制台或文件蟒蛇
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.stdout
,sys.stdin
和sys.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。