每次写脚本的时候,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的区别和用法的更多相关文章

  1. Python os.removedirs() 和shutil.rmtree() 用于删除文件夹

    概述 os.removedirs() 方法用于递归删除目录.像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般 ...

  2. Python os.rmdir() 方法

    概述 os.rmdir() 方法用于删除指定路径的目录.仅当这文件夹是空的才可以, 否则, 抛出OSError.高佣联盟 www.cgewang.com 语法 rmdir()方法语法格式如下: os. ...

  3. Python中list,tuple,dict,set的区别和用法

    Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...

  4. Python中list,tuple,dict,set的区别和用法(转)

    原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...

  5. python学习--Python之import与from...import的区别与用法

    Python编码第一步是导入模块,有时候用import ***有时候用from...import,它们有什么区别呢,请看实例A/B: A: 1.当模块test.py中没有类,只有方法add,此方法实现 ...

  6. python模块详解 | shutil

    简介: shutil是python的一个内置模块,提供了许多关于文件和文件集合的高级操作,特别提供文件夹与文件操作.归档操作了支持文件复制和删除的功能. 文件夹与文件操作: copyfileobj(f ...

  7. python标准库之shutil——可操作权限的文件操作库

    转载自:https://www.jb51.net/article/145522.htm shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能. 文件夹与文件操作 ...

  8. [转]python中对文件、文件夹的操作——os模块和shutil模块常用说明

    转至:http://l90z11.blog.163.com/blog/static/187389042201312153318389/ python中对文件.文件夹的操作需要涉及到os模块和shuti ...

  9. python os&shutil 文件操作

    python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...

随机推荐

  1. Linux 任务管理篇(一)

    查看网络的联机状态    netstat -a 查看后台执行的程序    ps -aux 将内存中的数据快速写入到硬盘中        sync

  2. 选择排序(C++,Java,Python实现)

    排序算法之选择排序,选择排序,选择排序的基本思想描述为:每一趟在n-i+1(i=1,2,-,n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录.具体来说,假设长度为n的数组arr,要按照从小 ...

  3. Lua 5.3 -- SOL2.0 用户指南 【1】

    SOL2.2 是一个快速.简单的C++与LUA的绑定器.如果确定要在你的程序里面同时运行Lua和C++,SOL 是一个高性能的绑定器,是一个API使用方便的 GO-TO 框架. 简单看一下特点:这个链 ...

  4. elementUI踩坑

    1.滚动条消失,body中莫名出现行内样式overflow: hidden; 在做某个图片上传,显示功能出现的问题.控制台并没有报错,代码也并无相关操作 必须重新刷新页面之后滚动条才会显示出来 几天后 ...

  5. 带你五分钟了解python的函数式编程与闭包

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:梁唐 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...

  6. day8作业

    # 一:for循环 # 1.1 for循环嵌套之打印99乘法表 for i in range(1,10): for j in range(1,i+1): print("{} * {} = { ...

  7. testlink数据表分析

    创建一个项目test node_types: 节点类型,这是一个固定的表 rights: 权限表,用户的操作权限 role_rights: 角色和权限关系表 roles: 角色表 testprojec ...

  8. sftp的用法

    linux sftp远程连接命令 sftp -oPort=60001 root@192.168.0.254 使用-o选项来指定端口号. -oPort=远程端口号 sftp> get /var/w ...

  9. Mysql数据操作指令

    -----多数据插入-----只要写一次insert指令,但是可以直接插入多条记录insert into table values(),(),(); 主键冲突我们插入值的时候,主键中已经存在某个值,插 ...

  10. java学习(第五篇)包装类

    一.Integer package com.test01; public class IntegerTest01 { public static void main(String[] args) { ...