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


    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}')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行结果

    系统盘符为C:
    
    • 1

    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}')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行结果

    在这里插入图片描述
    由于职业素养,我把系统盘的一些敏感目录给打马赛克了。

    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}')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行结果

    在这里插入图片描述
    同样,我截取的是一部分内容,
    从结果可以看出,把我电脑的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'执行完成')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    运行结果

    在这里插入图片描述

    在C盘生成testfile.txt 文件
    在这里插入图片描述

    注:
    系统盘,需要超管权限, 否则, 就会提示 如下信息:

    拒绝访问
    
    • 1

    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'执行完成')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    删除前,文件夹下的文件
    在这里插入图片描述

    运行结果
    在这里插入图片描述

    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'执行完成')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    运行结果与上图一样, 就不展示了。

    3、总结

    今天, 我分享了os的进阶用法,如:

    • os.environ
    • os.walk()
    • os.getenv()
    • os.rmdir()
    • os.remove()
    • os.chdir()

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

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

    我是小鱼

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

  • 相关阅读:
    2024最新图纸加密软件Top5排行榜
    C语言基础例题7例-结构体篇
    YARN 应用提交过程
    Spring 学习(六)代理模式
    数据库(SQL sever)
    java毕业生设计毕业生交流学习平台计算机源码+系统+mysql+调试部署+lw
    【Qt6.3基础教程01】 Qt简介与环境搭建
    【无标题】
    A-Level商务模型介绍:波士顿矩阵
    【微软技术栈】C#.NET 元组类型
  • 原文地址:https://blog.csdn.net/wuyoudeyuer/article/details/127888037