モジュールを使用して、学校のコンピューターでスクリプトを実行していmultiprocessing
ます。データを頻繁にシリアライズしています。以下のコードで要約できます。
import multiprocessing as mp
import time, pickle
def simulation(j):
data = []
for k in range(10):
data.append(k)
time.sleep(1)
file = open('data%d.pkl'%j, 'wb')
pickle.dump(data, file)
file.close()
if __name__ == '__main__':
processes = []
processes.append(mp.Process(target = simulation, args = (1,) ))
processes.append(mp.Process(target = simulation, args = (2,) ))
for process in processes:
process.start()
for process in processes:
process.join()
そのため、実際にコードをさらに多くのシミュレーションで実行し、より集中的なさまざまなタスクであると想像すると、次のエラーが発生します。IOError: [Errno 5] Input/output error
通常、file.open(...)
またはが前に付いていfile.close()
ます。
私の質問:
- スクリプトでこのエラーを修正するにはどうすればよいですか?
- このエラーは Python 初心者にとって何を意味しますか? 参考にさせていただきます。
私の手順に関するいくつかの注意事項:
- multiprocess 属性
daemon
をに設定する代わりにTrue
、screen を使用してスクリプトを実行し、デタッチします。これにより、スクリプトが停止することを心配せずに切断することもできます。 - これは、モジュールを使用した印刷に関する関連する質問のようです。
subprocess
私が言ったようにデーモンを明示的に使用しなかったので、これが役立つかどうかはわかりません。 - これは通常、約 1 日実行した後に発生し、さまざまなプロセスでさまざまな時間に発生します。