温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python怎么实现自动整理文件

发布时间:2022-04-11 10:12:31 阅读:155 作者:iii 栏目:开发技术
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

演示效果:

  • 使用前

python怎么实现自动整理文件

  • 使用后

python怎么实现自动整理文件

代码:

# # -*- coding:utf-8 -*-
import os
import glob
import shutil
import tkinter
import tkinter.filedialog
from datetime import datetime

def 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('存在重复的文件!')

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

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

如何实现文件自动分类?

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

  • 1 .分类

  • 2.创建分类目录

  • 3.移动文件资源

import os
import shutil
import tkinter
import tkinter.filedialog
from datetime import datetime

def 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怎么实现自动整理文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×