• 查找并删除指定文件夹下包含有指定的关键词的文件(GUI界面)


    一、需求

    通过程序,查找并删除指定文件夹下包含有指定的关键词的文件;

    二、效果图

    在这里插入图片描述

    三、部分说明

    1、python版本为3.8.10
    2、此次窗口部分的程序,是使用AI补充的,效果还不错。

    四、附代码
    import os
    import fnmatch
    import PySimpleGUI as sg
    
    # 创建窗口布局
    layout = [
        [sg.Text('选择文件夹路径:'), sg.Input(key='-FOLDER-', readonly=True), sg.FolderBrowse(target='-FOLDER-')],
        [sg.Text('输入需要删除文件关键词:')],
        [sg.InputText(key='-PATTERN-')],
        [sg.Button('搜索文件'), sg.Button('删除文件'), sg.Button('退出')],
        [sg.Listbox([], size=(70, 10), key='-FILELIST-')]
    ]
    
    # 创建窗口
    window = sg.Window('删除指定关键词的文件', layout)
    
    # 事件循环
    while True:
        event, values = window.read()
        if event == sg.WINDOW_CLOSED or event == '退出':
            break
        elif event == '搜索文件':
            pattern = values['-PATTERN-']
            folders_dir = values['-FOLDER-']
            n = 1
            file_ls = []
    
            if not folders_dir:
                sg.popup('请选择文件夹路径', title='错误')
                continue
    
            for file in os.scandir(folders_dir):
                if fnmatch.fnmatch(file.name, f'*{pattern}*'):
                    file_dir = os.path.join(folders_dir, file.name)
                    print(f'匹配上的文件--->>>')
                    print(f'\t\t\t{n}:{file.name}')
                    file_ls.append(file_dir)
                    n += 1
    
            if len(file_ls) == 0:
                sg.popup('没有搜索到符合的文件', title='提示')
            else:
                window['-FILELIST-'].update(file_ls)
        elif event == '删除文件':
            selected_files = values['-FILELIST-']
            if len(selected_files) != 0:
                judge = sg.popup_yes_no('是否删除选中的文件?', title='确认删除')
                if judge == 'Yes':
                    for file in selected_files:
                        os.remove(file)
                    sg.popup('文件删除成功!', title='提示')
                    window['-FILELIST-'].update([])
                else:
                    sg.popup('取消删除操作。', title='提示')
            else:
                sg.popup('请先搜索文件并选择要删除的文件。', title='提示')
    
    # 关闭窗口
    window.close()
    
    
    • 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
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
  • 相关阅读:
    c++ deque 的使用
    【横扫JDBC】JDBC 系列(老杜B站视频笔记整理)
    一些Java相关的知识点
    copy模块的copy()和deepcopy()
    微信小程序的框架
    Myeclipse的安装教程
    Kafka3.x进阶
    vuex复习
    CSS设置字体样式
    QtCreator5.15.0编译全过程记录
  • 原文地址:https://blog.csdn.net/lanzhen001/article/details/133085716