2

WriteFile1() コード スニップ:

try:
    iOutputFile = open(IFilePath, "a")
    if iOutputFile == 0:
        return

    csvInfoWriter = csv.writer(iOutputFile,  delimiter=',', lineterminator='\n')

    lenBuff = len(g_Hash)
    for value in g_Hash.itervalues():
        iValueLen = len(value)
        for index in range(0, iValueLen):
            csvInfoWriter.writerow(value[index])


    iOutputFile.close()

 except:
    print sys.exc_type

1 つのファイルの内容を読み取り、それらを dict g_Hash に保存しています。

1000 レコードを読み取った後、WriteFile1() を呼び出してファイルを書き込み、[ClearRec() を呼び出して] dict g_Hash の内容をクリアします。WriteFile1() を呼び出すたびに、出力ファイルが上書きされます。

助けてください、データを追加したいのですが、上書きしたくありません..

編集:コードからこれを削除した後も、問題は発生します。

 if iOutputFile == 0:
        return

アップデート:

ClearRec() コード:

        WriteFile1()
        g_Hash.clear()

----------- ClearRec() は問題を引き起こしますか? --------

4

2 に答える 2

3

追加を「a +」に変更する必要があります

もう少し参考に http://docs.python.org/2/library/functions.html#open

モード 'r+'、'w+' および 'a+' は、更新のためにファイルを開きます ('w+' はファイルを切り捨てることに注意してください)。バイナリ ファイルとテキスト ファイルを区別するシステムでファイルをバイナリ モードで開くには、モードに 'b' を追加します。この区別がないシステムでは、「b」を追加しても効果はありません。

于 2013-07-04T14:35:55.483 に答える