文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python怎么实现自动整理文件

2023-06-29 23:52

关注

本篇内容介绍了“python怎么实现自动整理文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

演示效果:

python怎么实现自动整理文件

python怎么实现自动整理文件

代码:

# # -*- coding:utf-8 -*-import osimport globimport shutilimport tkinterimport tkinter.filedialogfrom datetime import datetimedef start():    root = tkinter.Tk()    root.withdraw()    dirname = tkinter.filedialog.askdirectory(parent=root,initialdir="/",title='请选择文件夹')    return dirname# 定义一个文件字典,不同的文件类型,属于不同的文件夹file_dict = {    "图片": ["jpeg", "jpg", "tiff", "gif", "bmp", "png", "bpg", "svg", "heif", "psd"],    "视频": ["avi", "flv", "wmv", "mov", "mp4", "webm", "vob", "mng", "qt", "mpg", "mpeg", "3gp", "mkv"],    "音频": ["aac", "aa", "aac", "dvf", "m4a", "m4b", "m4p", "mp3", "msv", "ogg", "oga", "raw", "vox", "wav", "wma"],    "文档": ["oxps", "epub", "pages", "docx", "doc", "fdf", "ods", "odt", "pwi", "xsn", "xps", "dotx", "docm", "dox","rvg", "rtf", "rtfd", "wpd", "xls", "xlsx","xlsm","ppt", "pptx", "csv", "pdf", "md","xmind"],    "压缩文件": ["a", "ar", "cpio", "iso", "tar", "gz", "rz", "7z", "dmg", "rar", "xar", "zip"],    "文本": ["txt", "in", "out","json","xml","log"],    "程序脚本": ["py", "html5", "html", "htm", "xhtml", "cpp", "java", "css","sql"],     '可执行程序': ['exe', 'bat', 'lnk', 'sys', 'com','apk'],    '字体文件': ['eot', 'otf', 'fon', 'font', 'ttf', 'ttc', 'woff', 'woff2','shx'],    '工程图文件':['bak','dwg','dxf','dwl','dwl2','stp','SLDPRT','ipj','ipt','idw']}# 定义一个函数,传入每个文件对应的后缀。判断文件是否存在于字典file_dict中;# 如果存在,返回对应的文件夹名;如果不存在,将该文件夹命名为"未知分类";def JudgeFile(suffix):    for name, type_list in file_dict.items():        if suffix.lower() in type_list:            return name    return "未知分类"if __name__ == '__main__':    try:        while True:            path = start()            print("---->路径是: ",path)            if path == "":                print("没有选择路径!")                break            # 递归获取 "待处理文件路径" 下的所有文件和文件夹。            startTime = datetime.now().second            for file in glob.glob(f"{path}*", recursive=True):                # 由于我们是对文件分类,这里需要挑选出文件来。                if os.path.isfile(file):                    # 由于isfile()函数,获取的是每个文件的全路径。这里再调用basename()函数,直接获取文件名;                    file_name = os.path.basename(file)                    suffix = file_name.split(".")[-1]                    # 判断 "文件名" 是否在字典中。                    name = JudgeFile(suffix)                    # 根据每个文件分类,创建各自对应的文件夹。                    if not os.path.exists(f"{path}\\{name}"):                        os.mkdir(f"{path}\\{name}")                        print('path-->',name)                    # 将文件复制到各自对应的文件夹中。                    # shutil.copy(file, f"{path}\\{name}")                    # 将文件移动到各自对应的文件夹中。                    shutil.move(file, f"{path}\\{name}")            endTime = datetime.now().second            countTime= endTime-startTime            print("---->已经整理完成。共花费 {} s".format(countTime))            a = input('---->请按回车键退出:')            if a == '':                break    except BaseException:        print('存在重复的文件!')

执行起来很简单,只要写完程序,点击程运行,等待弹出窗口,选择需要整理的文件夹即可。

如果觉得以上代码觉得复杂,可以尝试以下更为简单的程序。

如何实现文件自动分类?

同一目录下存在很多不同类型的资源条件

import osimport shutilimport tkinterimport tkinter.filedialogfrom datetime import datetimedef start():    root = tkinter.Tk()    root.withdraw()    dirname = tkinter.filedialog.askdirectory(parent=root,initialdir="/",title='请选择文件夹')    return dirname# 源文件存在路径src_dir=start()# 分类资源存在路径dest_dir=src_dir# 判断目录是否存在if not os.path.exists(dest_dir):    os.mkdir(dest_dir)# 源目录分析files=os.listdir(src_dir)for item in files:    src_path=os.path.join(src_dir,item)    # 判断状态    if os.path.isfile(src_path):        #如果是文件,进入代码块        # 判断文件资源的类型        ndir = item.split('.')[-1]        desc_path=os.path.join(dest_dir,ndir)        # 创建分类目录        if not os.path.exists(desc_path):            # 如果分类子目录不存在,创建            os.mkdir(desc_path)        shutil.move(src_path,desc_path)

“python怎么实现自动整理文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯