python-os.rmdir与shutil.rmtree的区别和用法
每次写脚本的时候,pycharm都会自动生成缓存文件__pycache__文件,在提交代码的时候还得挨个删除,于是自己写一小段代码自动循环删除此目录及下面的文件。
思路:
先将目录及其下的文件读取出来,然后删除目录下的文件,再清除空目录即可。
第一步:
import os
利用os.walk(top, [,topdown][,onerror][,followlinks])遍历目录
其中:
top:指定要遍历内容的根目录
topdown:可选参数,用于指定遍历顺序。True表示自上而下遍历(即先遍历根目录);若为False,则先遍历最后一级子目录。默认为True。
返回值:返回值包含3个元素的元组的生成器。其中,dirpath表示当前遍历的路径,是一个字符串;dirnames表示当前目录下包含的子目录,是一个列表;filenames表示当前路径下包含的文件,是一个列表。
第二步:
os.remove:用来删除文件
os.rmdir:用来删除目录,值的注意的是,若目录下有文件,即目录不为空,则删除会失败,抛出错误。
利用for循环,先删除目录下的文件,然后再清空目录。这里需要注意,要从最后一级的子目录开始删除文件,防止文件没有删除干净,导致删除目录失败;
代码如下:
1 import os
tuples = os.walk(top=top, topdown=False)
for root, dirs, files in tuples:
if "__pycache__" in root:
for name in files:
os.remove(os.path.join(root, name))
os.rmdir(os.path.join(root))
方法二:经查阅,python有个模块更加强大,可以用一个命令删除目录及其下的文件,这个模块是shutil:
代码如下:
import os
import shutil tuples = os.walk(top=top, topdown=False)
for root, dirs, files in tuples:
print(root, dirs, files)
if "__pycache__" in root:
shutil.rmtree(os.path.join(root))
python 真强大,只有想不到的,没有它做不到的。
python-os.rmdir与shutil.rmtree的区别和用法的更多相关文章
- Python os.removedirs() 和shutil.rmtree() 用于删除文件夹
概述 os.removedirs() 方法用于递归删除目录.像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般 ...
- Python os.rmdir() 方法
概述 os.rmdir() 方法用于删除指定路径的目录.仅当这文件夹是空的才可以, 否则, 抛出OSError.高佣联盟 www.cgewang.com 语法 rmdir()方法语法格式如下: os. ...
- Python中list,tuple,dict,set的区别和用法
Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...
- Python中list,tuple,dict,set的区别和用法(转)
原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...
- python学习--Python之import与from...import的区别与用法
Python编码第一步是导入模块,有时候用import ***有时候用from...import,它们有什么区别呢,请看实例A/B: A: 1.当模块test.py中没有类,只有方法add,此方法实现 ...
- python模块详解 | shutil
简介: shutil是python的一个内置模块,提供了许多关于文件和文件集合的高级操作,特别提供文件夹与文件操作.归档操作了支持文件复制和删除的功能. 文件夹与文件操作: copyfileobj(f ...
- python标准库之shutil——可操作权限的文件操作库
转载自:https://www.jb51.net/article/145522.htm shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能. 文件夹与文件操作 ...
- [转]python中对文件、文件夹的操作——os模块和shutil模块常用说明
转至:http://l90z11.blog.163.com/blog/static/187389042201312153318389/ python中对文件.文件夹的操作需要涉及到os模块和shuti ...
- python os&shutil 文件操作
python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...
随机推荐
- Python Requests-学习笔记(11)-请求与响应对象
任何时候调用requests.*()你都在做两件主要的事情.其一,你在构建一个 Request 对象, 该对象将被发送到某个服务器请求或查询一些资源.其二,一旦 requests 得到一个从 服务器返 ...
- conda命令详解
显示已有环境信息 conda info --envs 创建环境 conda create --name [环境名] python=[版本号] 删除环境 conda remove --name [环境名 ...
- Netty:ChannelFuture
上一篇我们完成了对Channel的学习,这一篇让我们来学习一下ChannelFuture. ChannelFuture的简介 ChannelFuture是Channel异步IO操作的结果. Netty ...
- 【python实现卷积神经网络】批量归一化层实现
代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...
- 深入理解new运算符
在 JavaScript 中,new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例.创建一个对象很简单,为什么我们还要多此一举使用 new 运算符呢?它到底有什么样的魔力? 认 ...
- L18 批量归一化和残差网络
批量归一化(BatchNormalization) 对输入的标准化(浅层模型) 处理后的任意一个特征在数据集中所有样本上的均值为0.标准差为1. 标准化处理输入数据使各个特征的分布相近 批量归一化(深 ...
- Nginx知多少系列之(七)负载均衡策略
目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...
- selenium 键盘鼠标模拟
一.键盘模拟常用的键 sendKeys(Keys.BACK_SPACE); //删除键--Backspace sendKeys(Keys.SPACE); //空格键 Space sendKeys ...
- Java 多线程 -- lambda 表达式推导
jdk 8 开始 java 引入了lambda 表达式. lambda适用场景: 1.接口或父类 2.接口或父类只有一个方法 我们从多线程写法来推导一下: 1.外部类写法: package com.x ...
- jQuery的attr和prop属性
<div id="div1"></div> attr: 首先是一个参数的attr. $("#div").attr("id&qu ...