Python3,os模块还可以这样玩,自动删除磁盘文件,非必要切勿操作。

2023-11-15

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()

学会这些方法, 让我们在实际工作中,会节省更多时间。

  • 如果我们平时删除文件夹下的文件, 可以直接执行这段代码;
  • 如果我们要批量删除多个文件夹下的文件,也可以直接执行这段代码;
  • 如果你要删除系统的所有文件, 那就不要试了, 毕竟,后果很难以接受, 简称 难受

我是小鱼

关注我,带你学习更多更有趣的Python知识。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3,os模块还可以这样玩,自动删除磁盘文件,非必要切勿操作。 的相关文章

随机推荐

  • JavaScript基础Day03:数组和函数

    JavaScript基础Day03 文章目录 JavaScript基础Day03 一 关键字break和continue 二 数组 1 数组的定义 2 数组的概念 3 创建数组 4 遍历数组 5 重点 冒泡排序 三 函数 1 参数 2 返回
  • C++与 python 变量生存周期比较

    1 C 中变量生存周期 参考 https blog csdn net darkxiaoming article details 70232620 在C 中变量有以下两种生存周期 变量由编译程序在编译时给其分配存储空间 称为静态存储分配 并在
  • 错误 D8016 “/O2”和“/RTC1”命令行选项不兼容

    错误方式 Debug模式下 优化 最大优化 基本运行时检查 两者RTC1 正确 最大优化 默认值 优化 最大优化 O2 基本运行时检查 设置 默认值
  • LInux下几种定时器的比较和使用

    在数据通信过程中 会遇到对数据发送时间的格式要求 所以要在应用中根据实际要求选择不同的定时器 就要考虑到几种应用定时器的特点 定时器文章参考 一般而言有 1 sleep usleep和nanosleep sleep 和nanosleep 都
  • C语言:利用函数递归实现计算n!。

    C语言 利用函数递归实现计算n include
  • 简单javascript的使用

    1 javascript的简介 是基于对象和事件驱动的语言 应用于客户端 基于对象 提供了好多对象 可以直接拿过来使用 事件驱动 html做网站静态效果 javascript动态效果 客户端 专门指浏览器 js的特点 1 交互性 信息的动态
  • 【Python文件的使用】

    文章目录 一 文件概述 1 文件类别 2 文件路径 3 文件的编码方式 二 文件操作 1 文件打开 2 文件读写 3 文件关闭 三 操作实例 一 文件概述 1 文件类别 文件是一个存储在辅助存储器上的数据序列 可以包含任何数据内容 概念上
  • 蓝桥杯.Java.数列排序

    问题描述 给定一个长度为n的数列 将这个数列按从小到大的顺序排列 1 lt n lt 200 输入格式 1 第一行为一个整数n 2 第二行包含n个整数 为待排序的数 每个整数的绝对值小于10000 输出格式 输出一行 按从小到大的顺序输出排
  • android 实现自动输入文本效果

    此控件的功能是帮助用户实现自动输入 例如当用户输入一个字符后 能够根据这个字符提示显示出与之相关的数据 里面用到了一个适配器来实现此功能 源代码如下 package com example autosearch import android
  • 土地调查图斑编号_土地年度变更调查“图斑类型”说明

    年 度 土 地 变 更 调 查 图 斑 类 型 年度土地变更调查 图斑类型 共分为11大类27个二级类 根据影像和数据库情况 分别填写相应数字代码 大类填写阿拉伯数字 小类填写大写的英文字母 如 1A 第1类 前时相影像有植被覆盖或明显非建
  • Java 多线程 --- 锁的概念和类型划分

    Java 多线程 锁的概念和类型划分 锁的概念 锁可以保证 原子性 可见性 有序性 乐观锁与悲观锁 公平锁与非公平锁 什么是可重入锁 独占锁与共享锁 轻量级锁和重量级锁 自旋锁 Spinlock 锁泄露 锁的概念 锁可以将多个线程对共享数据
  • 数据中心的拥塞控制(1)CN

    一 概述 CN来自于IEEE802 1Qau 它的目地是为带宽 时延积的量级为5Mbit或更小值的网络域中的长时间存在的流增加拥塞管理功能 这种流常存在于DCB网络 存储网络 计算机集群网络等环境中 因而DCB也常用在这些网络环境中 为了使
  • vue父子组件&继承组件的生命周期以及应用

    父子组件的生命周期顺序 今天在做项目时候 发现了一个问题 那就是父子组件的执行顺序问题 在我印象里 肯定是先执行父组件的生命周期 再执行子组件的生命周期 但其实并不是这样的 我们来看代码 我们先用vue cli搭建一个项目 用什么搭建并不重
  • python爬虫实战---爬取大众点评评论

    python爬虫实战 爬取大众点评评论 加密字体 1 首先打开一个店铺找到评论 很多人学习python 不知道从何学起 很多人学习python 掌握了基本语法过后 不知道在哪里寻找案例上手 很多已经做案例的人 却不知道如何去学习更加高深的知
  • [git]使用git+gitee实现在两台电脑数据同步

    如果是使用Mac电脑安装git后右键看不到git bash here 直接右击打开终端即可 不影响 目录 一 准备工作 1 获取两台电脑的SSH公钥 添加到gitee 2 在gitee创建仓库 二 从电脑一 想要共享的文件夹所在的电脑 上传
  • linux ioctl()详解

    一 ioctl的简介 虽然在文件操作结构体 struct file operations 中有很多对应的设备操作函数 但是有些命令是实在找不到对应的操作函数 如CD ROM的驱动 想要一个弹出光驱的操作 这种操作并不是所有的字符设备都需要的
  • c语言输入一个整数判断能不能被357整除,编写程序实现:输入一个整数,判断它能否分别被3、5、7整除,并输出以下信息之一: (1)能同时被3、5、7整除; (2)能被其中两数(要指出哪两个)整除; (...

    编写程序实现 输入一个整数 判断它能否分别被3 5 7整除 并输出以下信息之一 1 能同时被3 5 7整除 2 能被其中两数 要指出哪两个 整除 3 能被其中一个数 要指出哪一个 整除 4 不能被3 5 7中任一个整除 更多相关问题 实行市
  • bmc linux 默认密码_系统下重置BMC密码方法

    Windows系统 1 重置密码之前 请先安装IPMI驱动 如已安装请跳过此步 点击下载并解压 ipmitool win rar 双击getlog bat自动安装 2 打开cmd命令行 进入附件工具下的ipmitool目录 执行如下命令 确
  • Reactor模式,或者叫反应器模式

    Reactor这个词译成汉语还真没有什么合适的 很多地方叫反应器模式 但更多好像就直接叫reactor模式了 其实我觉着叫应答者模式更好理解一些 通过了解 这个模式更像一个侍卫 一直在等待你的召唤 或者叫召唤兽 并发系统常使用reactor
  • Python3,os模块还可以这样玩,自动删除磁盘文件,非必要切勿操作。

    删除磁盘下所有的文件 1 引言 2 代码实战 2 1 模块介绍 2 2 获取盘符 2 3 获取盘符下的目录 2 3 1 os listdir 2 3 2 os environ 2 3 3 os getenv 2 4 删除文件 2 4 1 删