私は前の質問を常に改善していると思います。基本的に、multiprocess.Poolにピースを送信するには、大きなテキスト(csv)ファイルをチャンク化する必要があります。そのためには、行を繰り返すことができる反復可能なオブジェクトが必要だと思います。( Pythonで大きなテキストファイルをマルチプロセッシングする方法を参照してください? )
テキストファイルを開いた後のファイルオブジェクト自体(または_io.TextIOWrapperタイプ)は1行ずつ反復可能であるため、チャンクコード(以下、以前は欠落していたことをお詫びします)でチャンクできる可能性があることに気付きました。その長さ?しかし、それが反復可能である場合、なぜその長さを(バイトではなく行で)単純に呼び出すことができないのですか?
ありがとう!
def chunks(l,n):
"""Divide a list of nodes `l` in `n` chunks"""
l_c = iter(l)
while 1:
x = tuple(itertools.islice(l_c,n))
if not x:
return
yield x