python - 非常奇怪的 python NameError

标签 python wsgi pickle python-2.7 nameerror

我正在制作一个 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/

相关文章:

python - 在文本输入字段中设置示例答案

python - ValueError : could not broadcast input array from shape (20, 590) 变成形状 (20)

request - flask:wsgi-middleware与before_和after_request()

Python Flask WSGI 文件忽略了用户的环境变量

python - 在 Python 中附加 Pickle 文件

Python - 获取两个 Json 文件的交集

python - 在 pandas DataFrame 的滚动切片上应用函数

python - 我可以使用 Hendrix 运行 Falcon 应用程序吗?

python - 如何恢复损坏的、部分 pickle 的文件?

python - pickle 除一个以外的所有属性