私は以前の質問を常に改善していると思います。基本的に、私は大きなテキスト(csv)ファイルを分割してマルチプロセスに送る必要があります。プール。そうするためには、反復可能なオブジェクトが必要です あなたがテキストファイルを開いた後ラインで反復可能なラインなので、おそらく私のチャンクコード(今や以下、以前にそれが欠けて申し訳ありません今、私はファイルオブジェクトそのもの(または_io.TextIOWrapperタイプ)ことに気づきなぜiterableオブジェクトはPythonでは長さがありませんか?
(how to multiprocess large text files in python?を参照してください) )それは長さを得ることができる場合、それをチャンクすることができますか?しかし、iterableの場合、なぜ私は単純にその長さを(行ではなく、バイトでなく)呼び出すことができますか?
ありがとうございます!
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
ありがとう!私は、8つのコアが最終的に実際の作業を終わらせ、最初にラインを数えてしまうと、もっと多くを得ることを願っています。チャンクを入れてコアに送る行数がわからなくてもチャンクが機能する方法は見当たりません。私はこれがpy3kで入手できるほど良いと思います。 –