找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2470|回复: 1

[求助] python桌面整理程序

1

主题

1

帖子

1

积分

贫民

积分
1
caya 发表于 2022-3-8 23:29:27 | 显示全部楼层 |阅读模式
1威望
在网上找的桌面整理代码,运行后会把桌面的文件整理进对应的文件夹,但如果桌面上新建的文件名称已经出现在整理文件夹,则运行会报错"ERROE:路径错误或有重复的文档"并立即停止程序,如何改写程序后不报重复的错误,跳过重复的文件继续整理桌面其他新建的文件,整理完后再提示没有整理的重复的文件已存在哪个文件夹下,谢谢帮助!
import os
import glob
import shutil

class FileType():
    def __init__(self):
        self.filetype = {
            "图片": [".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", ".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", ".c", ".cpp", ".java", ".css",".sql",
            "可执行程序": [".exe",".bat",".lnk",
            "字体文件": [".ttf", ".OTF", ".WOFF", ".EOT"]
        }

    def JudgeFile(self, pathname):
        for name, type in self.filetype.items():
            if pathname in type:
                return name
        return "无法判断类型文件"


class DeskTopOrg(object):
    def __init__(self):
        self.filetype = FileType()

    def Organization(self):
        filepath = input("请输入需要整理的文件夹路径: ")
        paths = glob.glob(filepath + "/*.*")
        print('paths-->',paths)
        for path in paths:
            try:
                if not os.path.isdir(path):
                    file = os.path.splitext(path)
                    filename,type = file
                    print('type-->',type)
                    print("filename-->",filename)
                    print('path-->',path)
                    dir_path = os.path.dirname(path)
                    print('dir_path-->',dir_path)
                    savePath = dir_path + '/{}'.format(self.filetype.JudgeFile(type))
                    print('savePath-->',savePath)
                    if not os.path.exists(savePath):
                        os.mkdir(savePath)
                        shutil.move(path, savePath)
                    else:
                        shutil.move(path, savePath)
            except FileNotFoundError:
                pass
print("程序执行结束!")


if __name__ == '__main__':
    try:
        while True:
            desktopOrg = DeskTopOrg()
            desktopOrg.Organization()
            print("---->你的文件已经整理完成。")
            a = input('---->请按回车键退出:')
            if a == '':
                break
    except BaseException:
        print("ERROE:路径错误或有重复的文档")

回复

使用道具 举报

0

主题

18

帖子

18

积分

贫民

积分
18
zhpy 发表于 2022-3-25 15:02:34 | 显示全部楼层
if not os.path.exists(savePath):
        os.mkdir(savePath)
if not os.path.exists(savepath+'/'+filename) # 跳过重复的文件
        shutil.move(path, savePath)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表