使用Python批量删除文件夹内的Word

本文介绍了一个Python程序,它通过用户选择的文件夹,利用os和tkinter库的功能,删除所有Word文档(.doc,.docx)。程序包含两个主要模块:提取文件夹路径和删除Word文件。
摘要由CSDN通过智能技术生成

目录

代码功能介绍

详细代码

完整代码

运行效果


代码功能介绍

1.弹窗自己选择需要处理的文件夹(代码会将文件夹内全部的Word文件删除)

2.删除完成,代码结束。

环境配置

需要用到的库:

import os
import tkinter as tk
from tkinter import filedialog

安装tkinter、filedialog这两个库的指令:

pip install tkinter
pip install filedialog

代码

功能模块介绍

首先定义一个函数,提取指定路径下的全部文件夹:一个名为 ​extract_directories​的函数,该函数接受一个文件路径列表作为输入,并返回这些文件路径所在文件夹的集合

import os

def extract_directories(files):
    """
    从文件路径中提取出所在的文件夹,并返回一个不重复的文件夹路径列表。

    Args:
    files: 包含文件路径的列表

    Returns:
    包含文件夹路径的列表
    """
    directories = set()  # 创建一个空集合用于存储文件夹路径
    for file in files:  # 对文件路径列表进行循环遍历
        directory = os.path.dirname(file)  # 提取文件所在文件夹的路径
        if directory not in directories:  # 检查是否已经在集合中
            directories.add(directory)  # 如果不在集合中,则添加
    return list(directories)  # 将集合转换为列表并返回

然后是删除指定目录下的word文件:一个名为 ​delete_word_files​的函数,它接受一个目录路径作为输入,并遍历该目录及其所有子目录,删除其中所有扩展名为'.doc'或'.docx'的文件。

import os

def delete_word_files(directory):
    """
    遍历指定目录及其所有子目录,删除其中所有扩展名为'.doc'或'.docx'的文件。

    Args:
    directory: 目标目录的路径

    Returns:
    无
    """
    for root, dirs, files in os.walk(directory):  # 使用os.walk遍历目录及其子目录
        for file in files:  # 遍历当前目录下的文件列表
            if file.endswith('.doc') or file.endswith('.docx'):  # 检查文件扩展名
                file_path = os.path.join(root, file)  # 构建文件的完整路径
                try:
                    os.remove(file_path)  # 删除文件
                    print(f"已删除文件: {file_path}")  # 打印删除成功的提示信息
                except OSError as e:
                    print(f"删除文件时出错: {file_path} - {e}")  # 打印删除失败的错误信息

完整代码

import os
import tkinter as tk
from tkinter import filedialog

def delete_word_files(directory):
    # 遍历指定目录及其所有子目录
    for root, dirs, files in os.walk(directory):
        for file in files:
            if file.endswith('.doc') or file.endswith('.docx'):
                file_path = os.path.join(root, file)
                try:
                    os.remove(file_path)
                    print(f"已删除文件: {file_path}")
                except OSError as e:
                    print(f"删除文件时出错: {file_path} - {e}")

def extract_directories(files):
    # 从文件路径中提取出所在的文件夹
    directories = set()
    for file in files:
        directory = os.path.dirname(file)
        if directory not in directories:
            directories.add(directory)
    return list(directories)

def main():
    # 创建Tk实例,但不显示主窗口
    root = tk.Tk()
    root.withdraw()
    
    # 弹出文件选择对话框,允许选择多个文件
    word_files = filedialog.askopenfilenames(title="选择Word文件")
    
    # 如果用户取消了选择,则word_files将是空列表
    if word_files:
        # 从Word文件中提取出所在的文件夹
        folders = extract_directories(word_files)
        
        # 遍历选中的文件夹列表
        for folder in folders:
            delete_word_files(folder)

if __name__ == "__main__":
    main()

运行效果

选择完成后,按回车即可全部删除文件夹内的全部word

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千城千景

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值