私は1.6GBのpythonプロセスで使用できるようになっています。私はデータがデータベースから来ている大きなCSVファイルを書いています。問題は次のとおりです。ファイルが書き込まれた後、メモリ(> 1.5GB)がすぐに解放されず、コードの次のビットにエラーが発生します(割り当てに十分なメモリが見つからないためメモリが割り当てられません)。Pythonでcsv.writerを使用した後、どのようにメモリを解放できますか?
メモリを解放するのに役立つ機能はありますか? または、より良い方法がありますか?
これは、私がファイルを書き込むために使用しているスクリプトですメモリの問題に対処するために、チャンクで書いている:
size_to_read = 20000
sqlData = rs_cursor.fetchmany(size_to_read)
c = csv.writer(open(fname_location, "wb"))
c.writerow(headers)
print("- Generating file %s ..." % out_fname)
while sqlData:
for row in sqlData:
c.writerow(row)
sqlData = rs_cursor.fetchmany(size_to_read)
最後の行の後にエラーが出るコードはありますか?それともエラーの最後の行ですか? – Adam
いいえ、メモリが不足している行数が少なく、この行にエラーがあります:file_obs = int(subprocess.check_output(["cat%s /%s | wc -l"%(locationToUpload、filename)]、 shell = True)) – ebertbm
私は間違っているかもしれませんが、最後の行では 'sqlData = rs_cursor.fetchmany(size_to_read)'ですか?あなたがちょうどファイル(あなたが閉じていない)に書いたものすべてをもう一度ロードしますか? – roganjosh