我有一个功能:
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
到文件的顶部
NameError:未定义全局名称“sys”
import sys
在你的 python 文件的顶部修复
顺便说一句,将变量命名为file
or list
or dict
or 几乎任何默认类型是一个可怕的想法。
您应该在脚本的开头添加这一行:
import sys
你忘了import sys
sys是 python - python docs的“系统特定参数和函数”模块。
这样做是获取系统特定的标准输出管道,以便将 python 文件输出到. 就像在流中它可以写入:)。
File 和sys.stdout
, sys.stdin
andsys.stderr
都是要写入的流。
一般来说,如果它说NameError
您忘记导入某些东西或者您没有正确定义某些东西:)
您可能想将其重写为 opens_file 或类似的东西,File
而其他一些类似的词(如果您这样做了random = 3
)永远不好解决,因为它们被用作各种 Python 对象或内部构件的名称 - 并且您要确保您没有即使 Python 应该巧妙地解决这些冲突 :)
您需要导入sys
模块:
import sys
之后就可以使用sys.stdout
了。