首页 » Web前端 » phpmkdirtrue技巧_Python中精确运用mkdir和makedirs避免异常和线程安然问题

phpmkdirtrue技巧_Python中精确运用mkdir和makedirs避免异常和线程安然问题

访客 2024-12-09 0

扫一扫用手机浏览

文章目录 [+]

在Python的os模块中,创建文件夹有两种办法,一个是os.mkdir(),其余一个是os.makedirs(),这两个的差异如下:

os.mkdir() 函数:os.mkdir(path, mode=0o777)

phpmkdirtrue技巧_Python中精确运用mkdir和makedirs避免异常和线程安然问题

利用模式mode创建名为path的目录。
如果目录已经存在,则抛出非常FileExistsError。

phpmkdirtrue技巧_Python中精确运用mkdir和makedirs避免异常和线程安然问题
(图片来自网络侵删)

在一些系统中,可以忽略mode,在一些平台可以通过调用chmod()来指定它们。
mode便是所创建目录对应的文件及文件夹的读写权限,可以参考Linux命令下的chmod命令来理解。

os.makedirs()函数:os.makedirs(path, mode=0o777, exist_ok=False)

递归目录创建函数,和mkdir()很像,但是所有中间级目录都要包含叶目录。

递归创建目录,题中应有之意即路径中哪一层不存在,则自动创建。

差异于os.mkdir(path, mode=0o777),只创建末了一层的目录。

path:所要创建的目录

参数mode通报给mkdir();

如果exist_ok是False(默认),当目标目录(即要创建的目录)已经存在,会抛出一个OSError。

详细利用实例如下:

在上图/data/zzz文件夹下没有任何文件夹,我们现在就来创建一个名为a的文件夹:

这时a文件夹已经存在,我们再实行一下上次的指令函数:

这时就会报错,如果程序中没有处理非常,或者非常之后没有做补偿方法,那么会对业务系统中的某个方面会有一些影响,虽然影响不是很大,但是我们完备可以通过编程措辞供应的其他函数,进行系统完善,下面就用os.makdirs(),来避免上面的缺点:

从上图中可以看出,如果os.makedirs()利用参数exist_ok的默认值,也便是exist_ok=False,还是会报[Errno 17] File exists的缺点,这时就要用exist_ok=True,这样如果文件夹存在,会忽略创建文件夹。
也有人会用os.mkdir()这样写程序,便是加一个判断,如果文件夹存在,才去用os.mkdir()去创建文件夹,如果这个方法没有加锁,那么就会带来线程安全问题,便是两个或者多个线程同时进入创建文件夹的只指令处,也会发生抛出非常的征象,如果加锁了,也会对该方法性能方面有些影响,况且锁利用不好,随意马虎把自己都给锁去世,以是还是利用编程措辞供应的函数去精确的编程。
这两个还有一个差异便是是否支持递归创建文件夹:

可见os.mkdir()不支持递归创建文件夹,只有父层文件夹存在时,才能创建子层文件夹,而os.makedirs()是支持递归创建文件夹的。

相关文章

php情况概述技巧_php基本情形介绍

运行环境检测:1、测试能否运行php文件在htdocs目录里随便写一个php文件,然后浏览器运行,看是否正常。2、测试时区是否配置...

Web前端 2024-12-11 阅读0 评论0

php截取导出技巧_PHP采集 抓取

一、 什么是php采集程序?二、 为什么要采集?三、 采集些什么?四、 如何采集?五、 采集思路六、 采集范例程序七、 采集心得什...

Web前端 2024-12-11 阅读0 评论0

王昭东php技巧_开拓者之路序言

我们常常会创造,历时四年软件专业的大学生毕业居然找不到事情,即便找到了事情也只能是做一些大略的赞助性事情。那么我们不禁要问,究竟是...

Web前端 2024-12-11 阅读0 评论0