您好,登錄后才能下訂單哦!
本篇內容介紹了“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怎么實現自動整理文件”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。