1

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

我的代码错了吗(是)?如何?

4

1 回答 1

5

您正在编辑文件,但您的 Web 服务器仍在运行旧代码。回溯读取源文件以向您显示该行,但这并不意味着它正在运行该行。从您提到的回溯中可以清楚地看出这一点表明注释行是问题所在。

正如@JBernardo 评论的那样,您需要将“close(file)”更改为“file.close()”,然后您需要强制您的 Web 服务器重新加载代码。

于 2011-11-21T02:58:13.740 回答