背景
一个Python脚本由串行改为并行,总是有一定概率挂掉。
代码
通过查寻log发现是创建新目录的坑
原始写法是这样的
if not os.path.exists(directory):
os.makedirs(directory)
看似没毛病,实则多线程并发时上一行检查没有目录下一行其他线程产生了目录导致创建失败。
修改
使用线程安全的方法创建目录,目录存在也可以继续执行代码
os.makedirs(output_folder, exist_ok=True)
无需判断是否存在
参考
os — Miscellaneous operating system interfaces — Python 3.12.0 documentation
标签:Python,makedirs,新建,线程,directory,os,目录 From: https://www.cnblogs.com/azureology/p/17855599.html