Python os.mkdir()与os.makedirs()的使用区别
作者:威震四海 发布时间:2023-08-19 20:01:56
标签:Python,os.mkdir,os.makedirs
os.makedir(path)和os.makedirs(path)
今天工作中将hadoop文件同步到服务器磁盘,由于文件类别目录较多,迁移文件时需要判断是否存在
这里有两个方法os.mkdir(path)和os.makedirs(path)
os.mkdir(path)
他的功能是一级一级的创建目录,前提是前面的目录已存在,如果不存在会报异常,比较麻烦,但是存在即有他的道理,当你的目录是根据文件名动态创建的时候,你会发现他虽然繁琐但是很有保障,不会因为你的一时手抖,创建而创建了双层或者多层错误路径,
import os
os.mkdir('d:\hello') # 正常
os.mkdir('d:\hello\hi') # 正常
# 如果d:\hello目录不存在
# 则os.mkdir('d:\hello\hi')执行失败
os.makedirs(path)
单从写法上就能猜出他的区别,他可以一次创建多级目录,哪怕中间目录不存在也能正常的(替你)创建,想想都可怕,万一你中间目录写错一个单词.........
import os
os.makedirs('d:\hello') # 正常
os.makedirs('d:\hello\hi') # 正常
# 如果d:\hello目录不存在
# 则os.makedirs('d:\hello\hi') # 仍然正常
各有优缺点,根据自己需要选择使用。
补充:Python中os.path和os.makedirs的运用(判断文件或文件夹是否存在,创建文件夹)
import os
import numpy as np
data = np.array([1, 2, 3])
if not os.path.exists("./data/"):
print("# path not exists")
os.makedirs("./data/")
if not os.path.exists("./data/data.npy"):
print("# data.npy not exists")
np.save("./data/data.npy", data)
print("# path exists? :", os.path.exists("./data/"))
print("# data.npy exists? :", os.path.exists("./data/data.npy"))
运行结果:
# path not exists
# data.npy not exists
# path exists? : True
# data.npy exists? : True
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/Beyond_F4/article/details/80430911


猜你喜欢
- 如我们在之前的教程里讨论的那样,分页可以通过两种方法来实现:默认分页– 你仅仅只用选中data Web control的 智能标签的Enab
- 这篇文章主要介绍了Python unittest工作原理和使用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- [参与测试的浏览器:IE6 / IE7 / IE8 / FF3 / OP9.6 / SF3 / Chrome2 ][操作系统:Windows
- 前言最近在做项目高可用时,需要使用数据同步。由于只有双节点,且采用主主同步可能存在循环同步的风险,故综合考虑采用Mysql主从同步(Mast
- 一、块(Block)是PL/SQL的基本执行单元,由定义部分,执行部分(必须)和例外处理部分组成。Declare/*定义部分――定义常量、变
- 切换按钮是QPushButton的特殊模式。它是一个具有两种状态的按钮:按压和未按压。我们通过这两种状态之间的切换来修改其它内容。#!/us
- 上一次写的《Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面》(点击打开链接)部分老一辈的需求可能对这种后现代的风格并不满意,没
- wm_concat、listagg、xmlagg、pivot函数一、wm_concat函数(oracle12g版本开始不支持)语法:sele
- 靓丽的网页是怎样生成的?也许您会脱口而出,当然是自己设计出来的。没错!不过这其中也有网页制作工具的一部分功劳,因为功能强大的网页制作工具可以
- 在Windows vista之前的微软操作系统的地址栏与浏览器的地址栏是一样的,也是面包屑般的自上而下的线性等级形,如果想从D盘跳到C盘是不
- 一、整体合并团队协作中,开发人员A、B、C分别在dev上进行功能开发,并push代码到远端dev上。当测试人员需要对功能进行测试的时候,我们
- 什么是 Python?自20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用,Python 已然成为最受欢迎的程序设计语言之一,特
- 一、安装库首先我们需要安装PIL和pytesseract库。PIL:(Python Imaging Library)是Python平台上的图
- 1、检测指定路径下所有文件所占用内存import osdef check_memory(path, style='M'):
- 可以通过model.state_dict()或者model.named_parameters()函数查看现在的全部可训练参数(包括通过继承得
- 游戏开始前的注意事项1:游戏《外星人入侵》将包含很多文件,请在你的D盘中新建一个空文件夹,并将其命名为alien_invasion.请务必将
- 一、前言本篇博客对于文件操作、字典、列表、匿名函数以及sort()等内置函数进行了系统的整理操作,以设计一个学生信息管理系统的形式展示,具体
- 上期回顾:亚马逊购物用户体验分析 (一)“查找内部”功能书是在亚马逊最常被购买的产品之一,所以毋庸置疑亚马逊的开发小组已经建立了一个关于“查
- 大多的MySQL都是装在Linux上的,而我们的本机上一般都会装MySQL-Front.那如何用MySQL-Front连接远端Linux系统
- 问题你想将一个多层嵌套的序列展开成一个单层列表解决方案可以写一个包含 yield from 语句的递归生成器来轻松解决这个问题。比如:fro