Python實現批量將文件按分類保存,文件再多,只需一秒鐘解決

来源:https://www.cnblogs.com/hahaa/archive/2022/04/23/16182677.html
-Advertisement-
Play Games

當我們電腦裡面的文本或者或者文件夾太多了,有時候想找到自己想要的文件,只能通過去搜索文件名,要是名字忘記了的話,那你也搜不了吧,當然你可通過尾碼名去搜索,但是通過搜索出來的文件只會更多,這還只是文件多的情況下。 如果文件名字基本一樣,只有序號不一樣呢?那特麽眼睛看瞎了估計還沒找到。 那麼我們可以用P ...


當我們電腦裡面的文本或者或者文件夾太多了,有時候想找到自己想要的文件,只能通過去搜索文件名,要是名字忘記了的話,那你也搜不了吧,當然你可通過尾碼名去搜索,但是通過搜索出來的文件只會更多,這還只是文件多的情況下。

如果文件名字基本一樣,只有序號不一樣呢?那特麽眼睛看瞎了估計還沒找到。

那麼我們可以用Python來對文件進行批量自動分類保存到文件夾,下次找的時候,就很輕鬆的能夠找到了。

我們這裡以這兩百多個world原始文件為例
在這裡插入圖片描述

代碼展示

import os
import time
import datetime
import pprint
import shutil
import re
# python學習交流1群 815624229 已滿
# Python學習交流2群 279199867

origin_dir = '原始文件/'
target_dir = '目標文件/'
files = os.listdir(origin_dir)

month_compile = re.compile('(20\d\d)([01][0-9])')
print(files)
file_dict = {}
for file in files:
    if file.endswith('.docx'):
        word_file = os.path.join(origin_dir, file)
        month = month_compile.search(word_file)
        if month:
            month = month.groups()
            # print(month.groups())
            if month[-1] == '00':
                month = re.search('(20\d\d)0([01][0-9])', word_file).groups()
            t1 = '-'.join(month)
            if t1 in file_dict.keys():
                file_dict[t1].append(word_file)
            else:
                file_dict[t1] = [word_file]

pprint.pprint(file_dict)

if not os.path.exists(target_dir):
    os.mkdir(target_dir)
# 移動文件
for key in file_dict.keys():
    # 創建文件的月份
    new_file_dir = os.path.join(target_dir, key)
    if not os.path.exists(new_file_dir):
        os.mkdir(new_file_dir)
    for file in file_dict[key]:
        # 獲取文件名
        new_file_name = os.path.basename(file)
        # 合併新的文件路徑
        new_file_path = os.path.join(new_file_dir, new_file_name)
        print(new_file_name)
        shutil.copyfile(file, new_file_path)

 

 

效果展示

我們這裡以按月份分類為例,自動創建文件夾進行分類。
在這裡插入圖片描述
看,這不就好找多了

.

 

 


兄弟們,快去試試吧


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近幾天我一直常用的Kubuntu(KDE yes!)更新至22.04後居然出現無法更改軟體源的bug,去Kubuntu論壇一看有同樣問題的人還不在少數,但卻沒有好的解決辦法,故而只有備份數據裝回Ubuntu。 由於學習需要,我需要再裝一遍Pytorch。Pytorch在linux上安裝推薦使用co ...
  • 最近沉寂的太久了,只為了給大家準備這一套試題,這大概是全網最全面的了,各位學這麼久Python,檢驗學習成果的時間到了!! 話不多說我們直接開始把! 一、填空題 001、Python安裝擴展庫常用的工具是lxx__lxx__和conda,其中後者需要安裝Python集成開發環境Anaconda3之後 ...
  • C++-類與對象(2)-繼承 繼承 一個小引子 有些類之間存在特殊的關係,像下麵的圖一樣: 定義這些類時,下級的成員除了有向上一級類的共性,還有自己的特性,這時,就可以用繼承的技術,減少代碼的重覆 繼承的基本語法 class 子類 : 繼承方式 父類 子類:也叫派生類 父類:也叫基類 #includ ...
  • 20212217劉恆謙 《Python程式設計》實驗三報告 代碼鏈接: 伺服器 客戶端 課程:《Python程式設計》 班級: 2122 姓名: 劉恆謙 學號:20212217 實驗教師:王志強 實驗日期:2022年4月23日 必修/選修: 公選課 1.實驗內容 利用socket進行網路通信,併在客 ...
  • 14-Reference & Value Semantics、 Pointers vs Values、 Loop Gotcha ...
  • 前言 圖像是 Web 應用中除文字外最普遍的媒體格式。 流行的 Web 靜態圖片有 JPEG、PNG、ICO、BMP 等。動態圖片主要是 GIF 格式。 為了節省圖片傳輸流量,大型互聯網公司還會定製特殊格式的圖片,WEBP 格式就是一個代表。 Python 除了數據分析,做圖片處理也是非常好用的。 ...
  • 前言 在一個Web應用中,通常會採用MVC設計模式實現對應的模型、視圖和控制器,其中,視圖是用戶看到並與之交互的界面。對最初的Web應用來說,視圖是由HTML元素組成的靜態界面;而後期的Web應用更傾向於使用動態模板技術,從而實現前後端分離和頁面的動態數據展示。Spring Boot框架為簡化項目的 ...
  • 最近的項目搗鼓msp430需要用到dac轉換以輸出模擬信號,項目代碼是接手前同事的 有些地方調試不通,以前沒有接觸過msp430晶元,更是沒搞過這種晶元io口時序驅動層的東西,甚至純c的都是頭一次作為工作正式用。沒辦法 萬事開頭難嘛 ,硬著頭皮網上到處翻資料 找晶元的手冊 找dac外設的寄存器說明, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...