我正在使用该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(...)
or开头file.close()
。
我的问题:
- 如何在我的脚本中修复此错误?
- 这个错误对 python 新手意味着什么?参考赞赏。
关于我的程序的更多说明:
- 我没有将 multiprocess 属性设置
daemon
为True
,而是使用 screen 来运行脚本然后分离。这使我也可以断开连接,而不必担心我的脚本会停止。 - 这似乎是关于使用模块打印的相关问题。
subprocess
正如我所说,我没有明确使用守护进程,所以不确定这是否有帮助。 - 这通常在运行大约一天后发生,并且在不同的时间发生在不同的进程上。