我正在制作一个 python 程序来提取一些数据,然后将其保存到一个文件中。它不起作用。
path="C:/foo/bar"
def newData():
import pickle
data = [
["foo"],
["bar"],
["baz"]
]
file = None
i = 0
while file==None:
if not exists(path + str(i)+".data"):
file = open(path + str(i)+".data", "w+")
else:
i+=1
pickle.dump(data, file)
close(file)
return path + str(i)+".data"
我收到一个名称错误,提示“未定义全局名称关闭”:
File "C:/foo/bar/baz.py", line 26, in newData
close(file)
NameError: global name 'close' is not defined
如果我在其中用 close 注释行,我得到:
File "C:/foo/bar/baz.py", line 26, in newData
#close(file)
NameError: global name 'close' is not defined
我的代码错了吗(是)?怎么办?
最佳答案
您正在编辑您的文件,但您的网络服务器仍在运行旧代码。回溯读取源文件以向您显示该行,但这并不意味着它正在运行该行。从您提到的将注释行指示为问题的回溯中可以清楚地看出这一点。
正如@JBernardo 评论的那样,您需要将“close(file)”更改为“file.close()”,然后您需要强制您的网络服务器重新加载代码。
关于python - 非常奇怪的 python NameError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8206683/