Python一鍵自動化整理文件,任意路徑下文件,都給你整理的明明白白!

2021-02-14 Python客棧

留言有禮,每天都會從留言中選出三位抽取6.6元紅包

作者:Huny

關注下方作者博客園,精彩搶先看!

https://www.cnblogs.com/huny/p/14146719.html

1. 前言工作上的文檔和資料好幾個月沒整理了,因為平常太忙都是隨手往桌面丟。整個桌面雜亂無章全是文檔和資料。幾乎快佔滿整個屏幕了,所有我必須要整理一下了。但是手動整理太費時間了,於是我想到了python。2. 基礎版

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 = 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("程序執行結束!")


if __name__ == '__main__':
    try:
        while True:
            desktopOrg = DeskTopOrg()
            desktopOrg.Organization()
            print("---->你的文件已經整理完成。")
            a = input('---->請按回車鍵退出:')
            if a == '':
                break
    except BaseException:
        print("ERROE:路徑錯誤或有重複的文檔")


整理完了,桌面清爽了不少。(注意此腳本是按後綴進行分類歸檔的)3. 升級版基於這個,我想是否可以對其他不同的路徑進行整理呢,於是又優化了一下。
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:路徑錯誤或有重複的文檔")

4. 打包成exe可執行文件其他朋友也有需求,但是又沒有python環境,於是我將程序打包成exe執行文件。① 安裝pyinstaller

② 執行打包命令
#在程序腳本的路徑執行以下命令
pyinstaller -F ***.py      

執行完後生成幾個文件,在dist文件下有一個exe可執行文件,將他單獨發給朋友即可。5. 活動提醒

不要忘記關注我們Python客棧11-16號每天都會抽取100紅包,大家快來參與吧!!!

今日關鍵詞是幸福

在公眾號主頁對話框發送關鍵詞【幸福】,即可參與新年祝福活動!

(1)活動期間,每個帳號每天都可參與抽獎

(2)每個帳號需要關注並回復關鍵詞參與抽獎。

(3)11日23:59開獎,12-16日21:00開獎

以上三位小夥伴,加小編微信:yumeko370領取小小紅包一份哦!

相關焦點

  • Python自動化整理文件「大升級」,任意路徑下文件,都給你整理的明明白白!
    前言工作上的文檔和資料好幾個月沒整理了,因為平常太忙都是隨手往桌面丟。整個桌面雜亂無章全是文檔和資料。幾乎快佔滿整個屏幕了,所有我必須要整理一下了。但是手動整理太費時間了,於是我想到了python。但是這幾個模塊,我很早就給大家講述過了,這裡就不再做過多的解釋了,而這裡就直接上代碼了。2.
  • 教你怎麼用 Python 自動整理文件
    我以前經常把下載的東西放在桌面或者「下載」文件夾中,使用完後再也沒管它,久而久之便變得亂七八糟,再整理的時候非常痛苦,巴不得有一個自動化的工具幫我歸類文檔。不知道你是不是有過跟我一樣糟糕的體驗,不過,前段時間我用Python做了一個根據後綴名整理文件的工具,先來看看效果:自動整理前:自動整理後:效果非常好,舒服多了如果你想要直接下載原始碼試試看,請在公眾號後臺回復文件自動整理獲得原始碼下載地址。
  • Python自動化整理文件 "可視化界面" 小工具上線了,拿來即用,趕緊體驗!
    小工具效果展示根據實際需求,需要被整理的文件夾往往都是單層的,例如桌面,所以程序並不支持去對子文件夾去遞歸處理。已經在子文件夾中的文件,都會被認為是已經被整理過了。下面,我們來講述一下它的功能介紹。小工具的主界面是這樣的:點擊開始整理,選擇待整理的文件夾後,就可以進行整理了,下面是整理前後的效果圖。界面還支持回退功能和刪除空文件夾功能。
  • Python文件路徑處理
    (), islink(), ismount(), exists(), lexists()該模塊中用於路徑處理判斷的一組函數  In [9]: isabs(expanduser('~/.zshrc')),isabs('./.zshrc')  # 判斷給定路徑是否是絕對路徑  Out[9]: (True, False)      In [11]:
  • 女朋友桌面文件雜亂無章?氣得我用Python給她做了一個文件整理工具
    pathlib:面向對象的編程方式來表示文件系統路徑。ttkthemes:tkinter 主題包,讓你的組件外觀更加騷。Pyinstaller:是一個非常簡單的打包  .py  文件的庫。文件整理功能 本文實現的文件整理實際是一種文件分類的功能,將指定文件夾下的文件進行分類,並移動到該類別的文件夾下。首先需要定義一個文件類型的字典,來指定每個類別文件有哪些。
  • 一鍵翻牆+打包Python文件成Windows下的exe文件
    一鍵翻牆原理提到 翻牆, 大家可能會想到藍燈, 賽風, SS,紅杏等,但是今天來講一個比較簡單的做法。那就是更改hosts文件的方式。至於其原理嘛,也很容易理解,就是找到能翻牆的代理伺服器,或者目標網站的真正的伺服器的IP,而不受國內 「DNS防火牆」的限制,來直接的訪問到目標數據的過程。
  • Python文件和文件夾操作整理
    儘量使用with來操作文件,因為它自動幫你管理了文件的打開和關閉,如果是不用with,自己不要忘記了關閉文件。newline=''參數消除了由於不同作業系統的換行符的差異。with open(filename, 'rt', encoding='utf-8',newline='') as f:    ...
  • 【3D】自製材質庫 (常用材質、貼圖文件整理打包)
    按SHIFT+T,打開資源追蹤,可以看到目前所有貼圖的路徑都是比較亂的,分散在各個文件夾中4.創建面板右上角——實用工具(圖標小錘子)——資源收集器5.點擊瀏覽——設置任意文件夾作為貼圖路徑——勾選「更新材質」,開始收集
  • 文科生快速入門python(十三) | 文件讀寫詳解
    除了之外【python辦公自動化(一) | chardet庫自動讀寫多編碼格式的文件】中描述的編碼錯誤外,還有忘記close()造成讀不到文件、搞混r,w,a,x模式、寫錯read, readline, readlines方法之類的常見錯誤。
  • 整理了34個Python自動化辦公庫!
    >回復二級計算機二級資料本次內容涵蓋了Excel、Word、PPT、ODF、PDF、郵件、微信、文件處理等所有能在辦公場景實現自動化的庫,希望能夠對大家有所幫助。通過 Python 腳本或 Jupyter notebook 自動化 Excel,通過宏從 Excel 調用 Python,並編寫用戶定義的函數(UDF 僅適用於 Windows)https://openpyxl.readthedocs.io特點:openpyxl 是一個用於讀取 / 編寫 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 庫。
  • 技巧|深度對比Python中4大文件/文件夾處理庫
    1. os庫對於os模塊來說,這是大家最熟悉的一個庫,功能相對很齊全,主要像以下這些功能:os.chdir() :改變當前工作目錄到指定的路徑;os.listdir(path):傳入任意一個path路徑,返回的是該路徑下所有文件和目錄組成的列表;2. shutil庫shutil庫,最主要的功能就是提供了對文件/文件夾的複製
  • Python辦公自動化不得不會的十大文件操作!
    本篇整理了10個Python中最常用到的文件操作,均採用內置函數實現,無論是批處理還是讀取文件都會用到,相信這個梳理對大家有所幫助。1.該函數將在指定的路徑下創建目錄,如果僅使用目錄名稱,則將在當前目錄中創建文件夾,即絕對路徑和相對路徑的概念。
  • python辦公自動化
    zipf.write(pathfile, arcname)    zipf.close()這裡主要使用的就是python自帶的包zipfile;上面這個make_zip函數的主要功能就是將一個文件夾裡面的所有文件路徑都提取出來,然後寫到zipf對象裡面:
  • python筆記4-遍歷文件夾目錄os.walk()
    2.walk()方法語法格式如下:os.walk(top,topdown=True,onerror=None, followlinks=False)- top 根目錄下的每一個文件夾(包含它自己), 產生3-元組 (dirpath, dirnames, filenames)【文件夾路徑, 文件夾名字, 文件名】。
  • 整理電腦文件的關鍵其實是,別把時間浪費在整理上【石說】
    但是,也正如同有些人家裡婉約整潔、讓人心曠神怡,而有些人家裡無處下腳、勉強算得上一個「窩」一樣,文件整理的思路和習慣也是有高下之分的。評判的標準是什麼?石頭覺得,任何分類法的原則必須且只能是:1、為了更快的處理手頭的文件。2、為了更快找到保存過的文件。一切與此原則相悖的分類方法都應捨棄。
  • 檔案管理丨《歸檔文件整理規則》整理原則、流程與一般要求
    為了適應紙質文件與電子文件並存的現狀,滿足信息化條件下歸檔文件整理的需要,2016年6月1日起施行的《歸檔文件整理規則》(以下簡稱《規則》)在整理原則、整理流程等方面做了較大幅度的修訂。這些規範和標準連同長期以來各機關在文件處理過程中形成的習慣做法,以及辦公自動化條件下電子文件形成的特殊要求,構成了文件形成的一般規律。遵循文件的形成規律對歸檔文件進行整理,實際上是將整理作為文件形成的自然延續過程,能夠最大限度減少個人對文件材料的人工幹預,提升文件整理質量。
  • Python自動化如何處理excel文件數據
    在python自動化中,經常會遇到對數據文件的操作,比如添加多名員工,但是直接將員工數據寫在python文件中,不但工作量大,要是以後再次遇到類似批量數據操作還會寫在
  • 【文件管理】文件整理助手
    由於每篇文章都是小七親手碼字與整理,難免有錯別字與病句,如果小夥伴有發現的,請在文末留言幫忙改正,謝謝你們的支持啦!本資源為小七七七七精心整理,僅供有需要的朋友們領取使用。公眾號還有其他資源,如有侵權請在後臺聯繫我們回復「101」獲得免費資源平時因為各種各樣的原因,一個主題的文件被放在了不同的文件夾,這樣文件歸檔的時候、或者是想再找出來用的時候就比較麻煩,今天給大家帶來一個文件整理軟體,簡單易用,打開試試就可以了。文件使用說明都在截圖上了。
  • Windows 10獲取文件夾下所有文件夾路徑
    電腦的某個目錄下可能有許多文件夾和文件,為了方便統計、分析和管理文件夾和文件信息,這時候就需要獲得文件夾或文件的路徑。具體怎麼獲得呢?打開Windows 10電腦資源管理器,進入想要獲取文件夾或文件路徑的文件夾中。
  • 電腦上自帶的3種文件整理「神器」 80%的人都不會用!
    當我們需要修改近期的工作文檔時,不需要再到處尋找不同的版本,在快速訪問中你就可以一目了然,迅速找到。除了自動整理以外,你還可以手動添加文件/文件夾到快速訪問中:       如果你不喜歡把大量的文件都堆放在桌面上,你可以按照桌面分類的原則,把常用的文件固定在快速訪問中,以此來更高效地使用它們。