2017-08-15 3 views
0

に解析中にメモリをきれいにする方法:は、私はこのような作業はPython 3で書かれたシンプルな2ステップの解析スクリプトを持っているのpython

1)URLはBeautifullSoupでそれを解析し、与えられた機能は、すべての必要なデータを収集しますシンプルでパンダシリーズは、それを返します。スクリプトを実行すると

for url in urls: 
    dataframe.append(parse(url)) 

def parse(url): 
    ...fill in Series 
    return Series 

2)私はループで作業するURL(50K以上のアイテム)の膨大なリストを持っていますメモリアメリカgeは(20分後に5 GBのように)大きく増加します。

各繰り返しの後、メモリを削除したり、キャッシュをダウンロードしたりするにはどうすればよいですか?私は内のすべてのデータを埋めるためにしようとしたとき

1)あなたはsoup.decomposeを(使用していることを確認してください)した後、私はミスを犯しもちろんそれ 2)で行わ:あなたは同じ問題を抱えて苦労

+1

すべての処理を遅延させてください。それ以上の文脈がなくても、はるかに言いにくいです。 – Carcigenicate

+0

申し訳ありませんが、「すべてを遅らせて処理する」とはどういう意味ですか? –

+0

ジェネレータを使って、すべてを一度にメモリに保持しないでください。一度にすべてをリストにダンプするのではなく、ジェネレータによって結果が生成されるようにしてください。 – Carcigenicate

答えて

0

[OK]をみんな場合1つのpd.DataFrameをファイルに保存する前に今私は小さなtmpデータフレームを取得し、一度私はそれをクリアしてtmpを保存する行の固定量を取得します。

このプロセスでは、最大約200 MBのRAMが使用されます。

これは、誰でも助けてくれることを願っています。

関連する問題