【通用文件操作】删除空文件夹

简介: 对于有强迫症的人来说,空文件夹是不允许存在的东西,而电脑中文件又特别多,而且空文件夹也不好找,要一个一个删除真的是太麻烦了,今天就和大家分享一下删除空文件夹的操作。文章比较啰嗦,读者可以直接跳到最后一段。

一、前言

对于有强迫症的人来说,空文件夹是不允许存在的东西,而电脑中文件又特别多,而且空文件夹也不好找,要一个一个删除真的是太麻烦了,今天就和大家分享一下删除空文件夹的操作。文章比较啰嗦,读者可以直接跳到最后一段。

二、Python的os模块

在Python的os模块中,封装了对文件和路径的操作,我们只需要几行代码就能遍历文件,删除空文件夹。下面我们来看看我们要用到一些操作。

1、查看目录下文件

在os中提供了一个listdir的函数用于查看目录下的文件和文件夹,具体使用如下:

import os
# 列出当前目录下的文件/文件夹
file_list = os.listdir(".")
# 输出返回的文件/文件夹列表
print(file_list)
复制代码

输出结果如下:

['.idea', 'dataset', 'main.py', 'nn', 'test', 'test.py', 'venv']
复制代码

可以看到,返回结果的列表里面存放了当前目录下的文件和文件夹名称。

2、拼接路径

为了安全准确的访问我们的文件,我更推荐用绝对路径的方式访问。这个时候我们就可以借助os.listdir生成文件的绝对路径列表,代码如下:

import os
# 获取当前目录的绝对路径
abs_path = os.path.abspath(".")
# 用于装文件的绝对路径
file_list = []
# 循环拼接
for file in os.listdir(abs_path):
    file_list.append(abs_path + "\\" + file)
print(file_list)
复制代码

输出结果如下:

['D:\\Coding Files\\Workplace\\PythonWorkplace\\Deep Learning\\.idea', 'D:\\Coding Files\\Workplace\\PythonWorkplace\\Deep Learning\\dataset']
复制代码

我们还用列表推导式可以简化一下上面的代码:

import os
abs_path = os.path.abspath(".")
file_list = [abs_path + "\\" + i for i in os.listdir(abs_path)]
复制代码

不过直接拼接"\\"是不可取的,我们可以用os.path.join函数来进行拼接,使用方法如下:

import os
path = os.path.join('test', 'test.py')
# 输出结果:test\test.py
复制代码

使用join函数的话可以自动适配不同系统的斜杠。我们把上面代码改成用join函数:

import os
abs_path = os.path.abspath(".")
file_list = [os.path.join(abs_path, i) for i in os.listdir('.')]
print(file_list)
复制代码

这样我们就完成了路径的拼接。

3、判断是文件还是文件夹

这里也有现成的函数:

import os
abs_path = os.path.abspath(".")
file_list = [os.path.join(abs_path, i) for i in os.listdir('.')]
for file in file_list:
    # 判断是否是文件夹
    if os.path.isdir(file):
        print(file, "是文件夹")
    # 判断是否是文件
    elif os.path.isfile(file):
        print(file, "是文件")
复制代码

这里主要就是下面两个函数:

os.path.isdir(file)
os.path.isfile(file)
复制代码

另外我们可以看看判断目录是否为空,这里就比较特别了:

if not os.listdir("test"):
    print("test目录是空的")
复制代码

这里我们看它是否返回了子列表,如果没有说明目录下没有子文件因此是空的。

4、删除文件

这里需要使用的我们的os.rmdir函数,这里需要传入的目录是空目录才能正常运行,我们可以删除前判断一下是否为空目录:

if os.listdir("test"):
    os.rmdir("test")
复制代码

三、批量删除空文件夹

下面我们可以结合一下上面的内容,实现批量删除空文件夹:

import os
abs_path = os.path.abspath(".")
file_list = [os.path.join(abs_path, i) for i in os.listdir('.')]
for file in file_list:
    if os.path.isdir(file) and not os.listdir(file):
        os.rmdir(file)
        print("删除了", file)
复制代码

输出结果如下:

删除了 D:\Coding Files\Workplace\PythonWorkplace\Deep Learning\test11
复制代码

这样我们就实现了批量删除指定目录下的空文件夹。但是我们应该如果删除全局的空文件夹呢?这里就需要用到walk函数遍历了:

import os
for root, dirs, files in os.walk(r"D:\\"):
    for file in files:
        # 获取文件路径
        path = os.path.join(root, file)
        if os.path.isdir(path) and not os.listdir(path):
            os.rmdir(path)
            print("删除了:", path)
复制代码

上面我们就实现了对D盘所以空文件夹的删除。这里walk的使用后面有机会可以详细介绍。

目录
相关文章
|
5月前
|
Java
java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
这篇文章介绍了Java中使用`renameTo()`、`Files.copy()`等方法对文件进行重命名、移动和复制的操作,并提供了代码实例和测试效果。
java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
|
8月前
|
Unix Linux 数据处理
使用Python批量复制文件夹及其子文件夹下的指定文件
使用Python批量复制文件夹及其子文件夹下的指定文件
346 1
|
8月前
如何批量复制多个文件到多个目录中(批量复制文件,多对多文件高效操作的方法)
该文介绍了如何使用一个工具进行文件批量复制的操作。首先,提供了百度网盘和蓝奏云的链接,附有提取码,以获取所需工具。接着,展示了一个包含三个文件夹和两张图片的示例。操作步骤包括:打开工具,使用Ctrl+5进入批量复制模块,选择图片并拖拽至复制区域,然后选择目标文件夹(在这里是三个命名的空文件夹),点击“开始复制”,等待过程完成。工具提供复制选项供用户按需选择,且支持保存操作路径以备后续使用。完成后,目标文件夹将包含复制的图片,整个过程简便快捷。
|
8月前
|
定位技术 Python
Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件
Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件
|
8月前
|
存储 缓存 Unix
Python编程基础 - 使用临时文件和临时目录
Python编程基础 - 使用临时文件和临时目录
98 0
|
Python
Python 文件处理指南:打开、读取、写入、追加、创建和删除文件
文件处理是任何Web应用程序的重要部分。Python有多个用于创建、读取、更新和删除文件的函数。
126 0
 Python 文件处理指南:打开、读取、写入、追加、创建和删除文件
|
Java
Java 创建文件自动新增父目录、查询目录文件、删除文件目录下面的文件
要处理文件保存和删除的操作,记录一下以免遗忘: 1、创建文件,并且自动创建父目录 2、删除目录下面的所有文件
173 0
|
Unix Shell 测试技术
Python 文件复制&按目录树结构拷贝&批量删除目录及其子目录下的文件
Python 文件复制&按目录树结构拷贝&批量删除目录及其子目录下的文件
159 0
|
SQL Python
【通用文件操作】查找重复文件
在前一篇我们以及说了如何搜索文件,详细查看【通用文件操作】文件搜索。今天我们来看看如何查找重复文件。在我们微信、QQ中,经常会我们每发送一次文件就会给我们在本地保存一份。我们可以使用今天的内容来实现重复文件的删除。
547 0
|
Python
【通用文件操作】文件自动整理
今天我们就带大家来实现一下文件自动整理的操作。在我们日常生活中,文件总是杂乱无章的,这个时候就需要我们整理一下。但是文件太多的话整理起来是非常麻烦的,因此我们今天就来用Python实现文件的自动整理。
155 0

热门文章

最新文章

下一篇
开通oss服务