<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
前言:
平時工作沒有養成分類的習慣,整個桌面雜亂無章都是檔案和資料,幾乎快佔滿整個螢幕了。所以必須要整理一下了,今天我們來看下用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('存在重複的檔案!')
執行起來很簡單,只要寫完程式,點選程執行,等待彈出視窗,選擇需要整理的資料夾即可。
如果覺得以上程式碼覺得複雜,可以嘗試以下更為簡單的程式。
如何實現檔案自動分類?
同一目錄下存在很多不同型別的資源條件
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實現自動整理檔案的文章就介紹到這了,更多相關python整理檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45