<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
為了實現這樣的小工具,我們先設想有下面這些功能。
1、可以自定義整理某一個路徑下面的所有需要被整理的檔案。
2、預設情況下,使用檔案字尾作為同一種類檔案的資料夾名稱,有其他想法的小夥伴可自行擴充套件。
將使用到的python模組匯入到程式碼塊中。
import os # 檔案/資料夾應用操作 import shutil # 移動檔案 import logging # 使用紀錄檔logging來列印紀錄檔
選擇好需要整理的原始檔案目錄。
下面是整理完成後的效果圖,根據檔案型別對各種檔案進行整理。
在程式碼塊中加入紀錄檔列印的模組,這裡紀錄檔列印選擇的是logging模組。
logger = logging.getLogger('自動歸納檔案') # 紀錄檔名稱 logging.basicConfig(format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s') # 紀錄檔列印格式 logger.setLevel(logging.DEBUG) # 紀錄檔列印級別
下面是檔案整理的程式碼塊的全部實現方式,主要部分都加上註釋說明。
dir = input('請輸入需要整理的檔案目錄: n') # 需要整理的檔案路徑 if os.path.isdir(dir): logger.info('當前目錄[' + dir + ']校驗成功!') paths = [] for file_path, dir_names, file_names in os.walk(r'' + dir): for file_name in file_names: try: file_name_path = os.path.join(file_path, file_name) dir_ = file_name.split('.')[1] new_file_name_path = os.path.join(dir, dir_) # 校驗新的資料夾是否已經存在 if os.path.isdir(new_file_name_path): # 直接移動檔案 shutil.move(file_name_path, new_file_name_path) else: # 建立好資料夾後移動檔案 os.mkdir(new_file_name_path) shutil.move(file_name_path, new_file_name_path) paths.append(os.path.join(new_file_name_path, file_name)) except: logger.error('[' + file_name_path + ']移動發生異常,執行下一個!') for path in paths: logger.info('移動完成的檔案:' + str(path)) else: logger.error('輸入的資料夾或者目錄不存在!')
以上就是自動整理檔案的全部程式碼塊的實現部分,使用時依次將程式碼塊copy到自己的開發工具中直接啟動就可。
進階
當檔案在不同路徑下,又該如何實現批次管理呢,下面是實現的程式碼,可以參考一下
import os import glob import 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"], "可執行程式": [".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:路徑錯誤或有重複的檔案")
這樣就可以自由的整理你想要整理的路徑了。
到此這篇關於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