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 に答える