Python利用os模块实现自动删除磁盘文件
作者:Carl_奕然 发布时间:2023-04-06 17:04:37
1、引言
小丝:鱼哥, 请教你个问题。
小鱼:你觉得你得问题,是正儿八经的吗?
小丝:那必须的, 人都正经,何况问题呢?
小鱼:那可不敢说, 你得问题这次是否正经我不敢说,但是人, 肯定不正经。
小丝:别这么说,鱼哥。
小鱼:还用我说, 你说说你自己的座驾是啥?
小丝:额… 我也没总去洗浴啊
小鱼:拉倒吧, 一周7天,你恨不得8天都在泡澡… 我还能说哈
小丝:鱼哥, 男人何苦为难男人。
小鱼:对了, 你刚刚想问啥问题来着?
小丝:鱼哥,那你保证,只讨论问题, 不讨论洗澡…
小鱼:嗯, 好, 我保证不会说 你经常在 红浪漫 洗浴中心的。
小丝:鱼哥… 你不讲究…
小鱼:那你还不赶紧说你想问啥问题?
小丝:我说… 能不能一次全部删除我的文件夹下的所有文件, 我不想手动删除.
小鱼:你可真懒, 那你直接把文件夹删除得了 ,再不行,你把磁盘格式化, 啥文件都没了。
小丝:鱼哥,别闹,正儿八经的问题。
小鱼:嗯, 这还不简单,就是它。
2、代码实战
2.1 模块介绍
关于 os模块, 相信大家都比较熟悉,例如:
os.listdir():直接返回指定路径下文件和文件夹组成的列表;
os.walk():获取每层文件夹下的文件路径,文件夹列表,文件列表;
os.path.exists():判断文件是否存在, True、false;
os.mkdir():创建一个新的文件夹;
os.rmdir():删除文件夹();
但是今天, 我们要分享是系统模块的操作方法,如下:
os.getenv():获取(盘符)信息;
os.environ:系统盘符;
os.chdir():更改目录;
os.getcwd():获取当前路径;
2.2 获取盘符
我们先获取系统盘的磁盘,很简单,我直接上代码:
代码示例
# -*- coding:utf-8 -*-
# @Time : 2022-11-16
# @Author : Carl_DJ
import os
#获取系统盘盘符
SystemDri_path = os.getenv('SystemDrive')
print(f'系统盘符为{SystemDri_path}')
运行结果
系统盘符为C:
2.3 获取盘符下的目录
我们继续来获取盘符下的文件,
这里,我展示3种方式,如下:
os.listdir()
os.environ
os.getenv()
具体样例,接着往下看。
2.3.1 os.listdir()
代码示例
# -*- coding:utf-8 -*-
# @Time : 2022-11-16
# @Author : Carl_DJ
import os
#获取系统盘符下的文件
SystemDri_file = os.listdir("C:")
print(f'系统盘符下的文件目录:{SystemDri_file}')
运行结果
由于职业素养,我把系统盘的一些敏感目录给打马赛克了。
2.3.2 os.environ
代码示例
# -*- coding:utf-8 -*-
# @Time : 2022-11-16
# @Author : Carl_DJ
import os
#获取系统盘符下的文件
SystemDri_file = os.environ
print(f'系统盘符下的文件目录:{SystemDri_file}')
运行结果
同样,我截取的是一部分内容,
从结果可以看出,把我电脑的C盘、D盘信息都打印出来了。
2.3.3 os.getenv()
代码示例
# -*- coding:utf-8 -*-
# @Time : 2022-11-16
# @Author : Carl_DJ
import os
#获取系统盘盘符
SystemDri_file = os.getenv('SystemDrive')
#修改当前目录
os.chdir(SystemDri_file+'\\')
#把目录以树形打印出来并保存在file.txt 文件
os.system('tree>>testfile.txt')
print(f'执行完成')
运行结果
在C盘生成testfile.txt 文件
注:
系统盘,需要超管权限, 否则, 就会提示 如下信息:
拒绝访问
2.4 删除文件
2.4.1 删除指定文件下文件
我们获取了磁盘的目录结构,
那么,接下来,我们就可以根据指定的文件路径,删除目标文件及目标文件夹。
这里用到的方法,也就两种:
os.remove():删除文件;
os.rmdir():删除目录;
os.walk():遍历文件目录;
我们来删某一文件,直接上代码:
代码示例
# -*- coding:utf-8 -*-
# @Time : 2022-11-16
# @Author : Carl_DJ
'''
实现功能:
使用os.walk()方法,遍历文件目录,
匹配则使用remove、rmdir 方法 删除
'''
import os
#设置文件路径
file_path = r'C:\Users\Carl_DJ\Desktop\DemoTest'
#遍历目录
for root,dirs,files in os.walk(file_path,topdown=False):
#name在文件中循环,如果匹配,则删除
for _file in files:
#删除文件
os.remove(os.path.join(root,_file))
#name在文件目录循环,如果匹配,则删除
for _dir in dirs:
#删除目录
os.rmdir(os.path.join(root,_dir))
print(f'执行完成')
删除前,文件夹下的文件
运行结果
2.4.2 删除所有文件下文件
如果你要删除系统下所有的文件,
只需要遍历即可。
但是,小鱼在这里强调:
本段代码,仅供演示操作;
执行此段代码需谨慎, 出现任何后果,都与小鱼无关;
切勿商用,切勿有删系统跑路的想法;
代码示例
# -*- coding:utf-8 -*-
# @Time : 2022-11-16
# @Author : Carl_DJ
'''
实现功能:
删除指定的磁盘下的所有文件
-->使用os.walk()方法,遍历文件目录,
-->匹配则使用remove、rmdir 方法 删除
'''
import os
#需要删除的文件路径
list = ['C:\\\\Users\\\\Carl_DJ\\\\Desktop\\\\DemoTest1\\\\','C:\\\\Users\\\\Carl_DJ\\\\Desktop\\\\DemoTest2\\\\']
#遍历目录
for i in list:
for root,dirs,files in os.walk(i,topdown=False):
# name在文件中循环,如果匹配,则删除
for _file in files:
# 删除文件
os.remove(os.path.join(root, _file))
# name在文件目录循环,如果匹配,则删除
for _dir in dirs:
# 删除目录
os.remove(os.path.join(root, _dir))
print(f'执行完成')
运行结果与上图一样, 就不展示了。
3、总结
今天, 我分享了os的进阶用法,如:
os.environ
os.walk()
os.getenv()
os.rmdir()
os.remove()
os.chdir()
学会这些方法, 让我们在实际工作中,会节省更多时间。
如果我们平时删除文件夹下的文件, 可以直接执行这段代码;
如果我们要批量删除多个文件夹下的文件,也可以直接执行这段代码;
如果你要删除系统的所有文件, 那就不要试了, 毕竟,后果很难以接受, 简称 难受。
来源:https://blog.csdn.net/wuyoudeyuer/article/details/127888037
猜你喜欢
- 本文实例讲述了python基于windows平台锁定键盘输入的方法。分享给大家供大家参考。具体分析如下:pywin32中没有BlockInp
- 介绍目前它是Python数值计算中最为重要的基础包,将numpy的数组的对象作为数据交互的通用语,一般我们要充分理解好矩阵计算的原理,这需要
- 如下所示:' '.join(line.split())例如:'line dd',运行line.split()
- 一、背景 最近系统线上数据库数据出现一个问题,发现某些字段存在一些异常的首尾空格,不管
- 1 配置环境setting.json·是设置语言环境,launch.json是设置执行环境来执行代码,tasks.js
- 通过ip2region解析IP获得地域信息目标,从给的读取给的ip地址文件解析出ip地域名并输出CSV文件,我选用的是开源ip2region
- 下面这个例子描述的是在Godaddy-Linux托管帐户上使用JSP连接到某个MySQL数据库。 <%@ page
- 如下所示:import datetime #获取两个日期间的所有日期 def getEveryDay(begin_date,end_date
- 在C#或者Java里面我们都知道,一个Class是要包含成员变量和方法的,对于GO语言的Struct也一样,我们也可以给Struct定义一系
- 今天看一个水友说他的MySQL现在变的很慢。问什么情况时。说单表超过2个G的一个MyISAM。真垃圾的回答方式。 &n
- 本文实例讲述了Django框架自定义session处理操作。分享给大家供大家参考,具体如下:django有自己的一套session框架,有他
- 无意中看到百度的页面代码,想到了一种声明写法,需要的朋友可以参考下。<!DOCTYPE html> <!--[if IE]
- 简单了解多子图学习matplotlib的时候,有人肯定会觉得为啥不用Excel,为啥不用origin,为啥不直接使用软件,其实matplot
- 基于上一篇文章,这篇文章是关于使用coverage来实现代码覆盖的操作实例,源代码在上一篇已经给出相应链接。本篇文章字用来实现代码覆盖的源代
- run() 方法并不启动一个新线程,就是在主线程中调用了一个普通函数而已。start() 方法是启动一个子线程,线程名就是自己定义的name
- 前几天玩了玩Google的Map API,感觉还不错,很简单。但凡有过任何编程经验的同学,看完以下的教程,都可以在10分钟内掌握它的主要功能
- 本文主要向大家分享了Python编程中通过Django模块实现用户注册以及邮箱验证功能的简单介绍及代码实现,具体如下。用户注册:类似于用户登
- 需求每天往一个表里面插入两条数据,但日期不同INSERT INTO test(`id`, `art_training_institution
- 使用base64对图片的二进制进行编码并用ajax进行显示有时候我们需要动态的将图片的二进制在页面上进行显示,如我们需要弄一个验证码的功能,
- 本文为大家分享了pygame游戏之旅的第8篇,供大家参考,具体内容如下定义一个计数函数:def things_dodged(count):