【发布时间】:2015-09-10 17:33:41
【问题描述】:
我有一个模板文件,用于根据参数列表制作很多新文件。因为我要制作 4000 个文件,所以我尝试了多处理模块模块。 代码大概是这样的:
from multiprocessing import Pool
def make_file(x):
Read textfile
Use x to change it
Save it with a new name
if __name__ == '__main__':
paramters = about 4000 parameters
p = Pool(5)
p.map(make_file,parameters)
但是当我尝试它时,它在制作了大约 2000 个文件后挂起。使用多个进程从同一个文件中读取是愚蠢的吗?
【问题讨论】:
-
您应该在尝试编辑文件之前获取文件的锁定。否则会出现竞争条件,结果文件可能会损坏。
-
停止创建文件的确切数量实际上很重要,因为您可能会遇到文件系统的技术限制。请提供有关路径和文件的更多信息
标签: python multiprocessing pool