首页 > 编程语言 >Python新建目录的坑

Python新建目录的坑

时间:2023-11-25 15:55:18浏览次数:38  
标签:Python makedirs 新建 线程 directory os 目录

背景

一个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

相关文章

  • 如何忽略 Python 中异常的报错
    在Python编程中,异常是一种常见的情况,可能会导致程序中断或产生错误。然而,并非所有的异常都需要立即处理,有时候我们希望忽略某些异常并继续执行程序。本文将介绍如何在Python中忽略异常,并提供一些示例和注意事项。try-except块:在Python中,我们可以使用try-except块来捕获并......
  • 聪明办法学python第2次打卡
    ##内置数据类型整数(int)浮点数(float)布尔值(bool)类型(type)-查看数据类型:isinstance(要查看对象,数据类型)type(要查看对象)例如:importnumbers​isinstance(123,numbers.Number)#True​isinstance("123",numbers.Number)#False​"123".isnumeric()#True##内置常......
  • Python CGI编程
    什么是CGICGI目前由NCSA维护,NCSA定义CGI如下:CGI(CommonGatewayInterface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。网页浏览为了更好的了解CGI是如何工作的,我们可以从在网页上点击一个链接或URL的流程:1、使用你的浏览器访......
  • Linux 中 一次同时复制多个文件到一个目录
     001、测试目录及文件(base)[root@pc1test01]#lsa.txtb.txtc.txt(base)[root@pc1test01]#pwd/home/test/test01 002、同时复制a.txt和b.txt到/home/test/test02目录中(base)[root@pc1test01]#lsa.txtb.txtc.txt(base)[root@pc1test01]#pwd......
  • python 正则表达式
    一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$正数、......
  • 目录
    等有时间就来补。随笔鸽鸽文章BinarysearchDisjointsetunion......
  • python notebook
    python(11.20--11.24)现学现卖配置python环境:下载:anaconda在清华大学开源软件镜像站中选择合适的镜像进行下载。anaconda的存在和作用:要使用anaconda不妨先了解anaconda是什么,做什么。首先要知道,anaconda的存在必然有其存在的社会条件,现如今的python拥有众多版本,他们可以满......
  • 【Django基础】Django新建项目
    安装Djangopipinstalldjango直接在pycharm中新建Django项目会自动安装django模块新建第一个项目django-adminstartprojectmysite项目目录mysite/manage.pymysite/__init__.pysettings.pyurls.pyasgi.pywsgi.p......
  • 【Python进阶笔记】md文档笔记第6篇:Python进程和多线程使用(图文和代码)
    本文从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、html+css、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。全套md格式笔记和代码自取:请移步这里......
  • day03-1Python相关知识补充
    【Python相关知识补充】【一】PIP换源【1】问题描述在使用Python时,我们经常需要用到pip安装第三方包,在某些情况下,由于网络速度慢或者其他各种原因,pipinstall会非常慢,甚至可能无法完成。在终端窗口使用以下命令进行第三方模块的下载、卸载:pipinstall模块名pipinstall......