2011-10-30 17 views
0

はPython 3に参加することにより、ファイルの部分をダウンロードしてください。私のプログラムはメモリが空になるので、これは非常に大きなファイルの問題です。 (200MBファイルの場合、17Mメモリから240Mメモリに移動する)は、私は、ファイルをダウンロードするためにはPython 3を使用してい

ファイル(パケット)の小さな部分をダウンロードしてファイルに書き込む方法があるかどうかを知りたいメモリに保存し、ファイルが完全にダウンロードされるまでプロセスを繰り返し続けます。

+2

[Lazy Method for Big File Reading Pythonの可能な重複?](http://stackoverflow.com/questions/519633/lazy-method-for-reading-big-file-in-python) – chown

答えて

3

は、ここで説明する方法を使用してみてください:

Lazy Method for Reading Big File in Python?

私は特に受け入れ答えに言及しています。それを完全に明確にするためにここにもコピーしてください。

def read_in_chunks(file_object, chunk_size=1024): 
     """Lazy function (generator) to read a file piece by piece. 
     Default chunk size: 1k.""" 
     while True: 
      data = file_object.read(chunk_size) 
      if not data: 
       break 
      yield data 


    f = open('really_big_file.dat') 
    for piece in read_in_chunks(f): 
     process_data(piece) 

これはおそらくあなたのニーズに適応します。小さなチャンクでファイルを読み込み、メモリ全体を満たすことなく処理できます。それ以上の質問があれば元に戻ってください。

+0

どのようなメソッドがありますかあなたも参照してください? – random

+0

私がリンクしているものは、ここでもう一度リンクします:[link](http://stackoverflow.com/questions/519633/lazy-method-for-reading-big-file-in-python) – Brendon

+0

質問にリンクしています。あなたが提案している方法はどれですか? – random

関連する問題