アーカイブ(tar)からtxtファイルを読み込み、関数でファイルを処理しようとしています。私はたくさんのファイルを持っており、計算を高速化するためにマルチプロセッシングライブラリを使うことに決めました。しかし、私は "ExFileObject 'オブジェクトを"シリアル化できません "というエラーが出ます。以下は私のコードの例です。 'ExFileObject'オブジェクトをシリアル化する方法、またはマルチプロセッシングlibを使用して計算を高速化する方法はありますか?私はPython 3.4を使用していますPython 3.x: 'ExFileObject'オブジェクトをシリアル化できません
import tarfile
from multiprocessing import Process, Manager
def start():
result = {}
file_path = '...somepath'
tar = tarfile.open(file_path, 'r')
for file in tar:
extr_file = tar.extractfile(file)
p = Process(target=straight_calc, args=(extr_file, result)) #thows error
p.start()
p.join()
print(result)
def straight_calc(file, result):
content = file.readlines()
for line in content:
pass
if __name__ == '__main__':
start()
"スピードアップ"のためにマルチプロセッシングを使用する場合、あなたが* 1つの*プロセスを開始し、それが完了するのを待っているので、あなたは実際に物事を価値あるものにしているようです。したがって、各ファイルのプロセスを生成するオーバーヘッドを追加しながら、順番に作業しています。 – davka