Python實(shí)現(xiàn)自動(dòng)整理文件的腳本
工作上的文檔和資料好幾個(gè)月沒(méi)整理了,因?yàn)槠匠LΧ际请S手往桌面丟。整個(gè)桌面雜亂無(wú)章全是文檔和資料。幾乎快占滿整個(gè)屏幕了,所有我必須要整理一下了。但是手動(dòng)整理太費(fèi)時(shí)間了,于是我想到了python。
示例import osimport globimport shutil’’’@Author: huny@date: 2020.12.06@function: 桌面整理’’’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',s'.c', '.cpp', '.java', '.css','.sql'], '可執(zhí)行程序': ['.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 '無(wú)法判斷類型文件'class DeskTopOrg(object): def __init__(self): self.filetype = FileType() def Organization(self): filepath = os.path.join(os.path.expanduser(’~’),'Desktop') 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('程序執(zhí)行結(jié)束!')if __name__ == ’__main__’: try: while True: desktopOrg = DeskTopOrg() desktopOrg.Organization() print('---->你的桌面已經(jīng)整理完成。') a = input(’---->請(qǐng)按回車(chē)鍵退出:’) if a == ’’:break except BaseException: print('ERROE:路徑錯(cuò)誤或有重復(fù)的文檔')
整理完了,桌面清爽了不少。(注意此腳本是按后綴進(jìn)行分類歸檔的)
基于這個(gè)我想是否可以對(duì)其他不同的路徑進(jìn)行整理呢,于是又優(yōu)化了一下
import osimport globimport shutil’’’@Author: huny@date: 2020.12.06@function: 文件整理’’’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'], '可執(zhí)行程序': ['.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 '無(wú)法判斷類型文件'class DeskTopOrg(object): def __init__(self): self.filetype = FileType() def Organization(self): filepath = input('請(qǐng)輸入需要整理的文件夾路徑: ') 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('程序執(zhí)行結(jié)束!')if __name__ == ’__main__’: try: while True: desktopOrg = DeskTopOrg() desktopOrg.Organization() print('---->你的文件已經(jīng)整理完成。') a = input(’---->請(qǐng)按回車(chē)鍵退出:’) if a == ’’:break except BaseException: print('ERROE:路徑錯(cuò)誤或有重復(fù)的文檔')
可以自由的整理你想要整理的路徑。
其他朋友也有需求,但是又沒(méi)有python環(huán)境,于是我將程序打包成exe執(zhí)行文件。
安裝pyinstaller
pip install pyinstaller
執(zhí)行打包命令
#在程序腳本的路徑執(zhí)行以下命令pyinstaller -F ***.py
執(zhí)行完后生成幾個(gè)文件,在dist文件下有一個(gè)exe可執(zhí)行文件,將他單獨(dú)發(fā)給朋友即可。
別忘了先自己測(cè)試一遍。
以上就是Python實(shí)現(xiàn)自動(dòng)整理文件的腳本的詳細(xì)內(nèi)容,更多關(guān)于python 自動(dòng)整理文件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. AJAX實(shí)現(xiàn)文件上傳功能報(bào)錯(cuò)Current request is not a multipart request詳解2. .NET 中配置從xml轉(zhuǎn)向json方法示例詳解3. 基于Surprise協(xié)同過(guò)濾實(shí)現(xiàn)短視頻推薦方法示例4. 不使用XMLHttpRequest對(duì)象實(shí)現(xiàn)Ajax效果的方法小結(jié)5. 以PHP代碼為實(shí)例詳解RabbitMQ消息隊(duì)列中間件的6種模式6. 推薦一個(gè)好看Table表格的css樣式代碼詳解7. ASP新手必備的基礎(chǔ)知識(shí)8. ASP常用日期格式化函數(shù) FormatDate()9. 微信小程序?qū)崿F(xiàn)商品分類頁(yè)過(guò)程結(jié)束10. vue-electron中修改表格內(nèi)容并修改樣式
