【python與生活】如何用Python寫一個簡單的自動整理文件的腳本?

在這里插入圖片描述

用 Python 寫一個自動整理文件的腳本很簡單,核心思路是:按文件后綴(如 .jpg.pdf)將文件分類,移動到對應的文件夾(如「圖片」「文檔」)中。以下是一個實用的實現方案,新手也能輕松修改和使用。

腳本功能

將指定文件夾(比如「下載」文件夾)中的所有文件,按類型自動分類到子文件夾中,例如:

  • 圖片(.jpg, .png, .gif 等)→ 圖片/
  • 文檔(.pdf, .docx, .xlsx 等)→ 文檔/
  • 視頻(.mp4, .avi 等)→ 視頻/
  • 其他未定義類型 → 其他文件/

實現代碼

import os
import shutildef organize_files(target_dir):# 定義文件類型與對應文件夾的映射(可根據需求擴展)file_categories = {'圖片': ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.svg', '.webp'],'文檔': ['.pdf', '.docx', '.doc', '.xlsx', '.xls', '.pptx', '.ppt', '.txt', '.md'],'視頻': ['.mp4', '.avi', '.mov', '.mkv', '.flv'],'音頻': ['.mp3', '.wav', '.flac', '.m4a'],'壓縮包': ['.zip', '.rar', '.7z', '.tar', '.gz'],'程序': ['.exe', '.msi', '.py', '.java', '.cpp', '.html', '.css', '.js']}# 遍歷目標文件夾中的所有項目for item in os.listdir(target_dir):item_path = os.path.join(target_dir, item)# 跳過文件夾(只處理文件)if os.path.isdir(item_path):continue# 獲取文件后綴(轉為小寫,避免大小寫問題)file_ext = os.path.splitext(item)[1].lower()# 確定文件所屬類別category = '其他文件'  # 默認類別for cat, exts in file_categories.items():if file_ext in exts:category = catbreak# 創建對應的類別文件夾(如果不存在)category_dir = os.path.join(target_dir, category)os.makedirs(category_dir, exist_ok=True)# 處理同名文件(避免覆蓋)target_path = os.path.join(category_dir, item)counter = 1while os.path.exists(target_path):# 例如:test.jpg → test(1).jpgname, ext = os.path.splitext(item)target_path = os.path.join(category_dir, f"{name}({counter}){ext}")counter += 1# 移動文件到目標文件夾shutil.move(item_path, target_path)print(f"已移動:{item}{category}/")if __name__ == "__main__":# 替換為你要整理的文件夾路徑(注意斜杠方向)# Windows示例:r"C:\Users\你的用戶名\Downloads"# Mac/Linux示例:"/Users/你的用戶名/Downloads"target_directory = r"C:\Users\你的用戶名\Downloads"# 檢查路徑是否存在if not os.path.exists(target_directory):print(f"錯誤:路徑不存在 → {target_directory}")else:print(f"開始整理文件夾:{target_directory}")organize_files(target_directory)print("整理完成!")

使用方法

  1. 修改路徑:將代碼中 target_directory 的值改為你要整理的文件夾路徑(比如下載文件夾)。

    • Windows 路徑格式:r"C:\Users\你的用戶名\Downloads"(注意前面的 r 不能少)
    • Mac/Linux 路徑格式:"/Users/你的用戶名/Downloads"
  2. 運行腳本:保存為 file_organizer.py,在終端執行 python file_organizer.py

自定義擴展

  • 添加更多類型:在 file_categories 字典中添加新的類別和對應的后綴,例如:
    '電子書': ['.epub', '.mobi']
  • 修改文件夾名稱:直接修改字典的鍵(如將「圖片」改為「Images」)。
  • 排除特定文件:如果有不想移動的文件(如 README.txt),可在遍歷前添加判斷跳過。

注意事項

  • 首次使用建議先備份文件,避免誤操作。
  • 腳本會跳過已存在的分類文件夾(如已有的「圖片」文件夾),不會遞歸處理子文件夾。
  • 遇到同名文件時,會自動在文件名后加編號(如 test(1).jpg),避免覆蓋。

用這個腳本,從此告別雜亂的下載文件夾啦!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920198.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920198.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920198.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SELinux相關介紹

目錄 1.SELinux 概述 2.SELinux 的執行模式 3.SELinux 的使用 1.SELinux 概述 SELinux( Security Enhanced Linux 安全性增強的Linux),由美國國家安全局 NSA(National Security Agency)開發,構建與 Kernel …

【C語言練習】漢諾塔

一、題目 介紹:漢諾塔(Tower of Hanoi),又稱河內塔,是一個源于印度古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓…

隨機森林實戰:在鳶尾花數據集上與決策樹和邏輯斯蒂回歸進行對比

前言 集成學習通過組合多個模型的優勢,常能獲得比單一模型更優的性能,隨機森林便是其中的典型代表。它基于 Bagging 思想,通過對樣本和特征的雙重隨機采樣,構建多棵決策樹并綜合其結果,在降低過擬合風險的同時&#xf…

(計算機網絡)TCP 三握中第三次 ACK 丟失會發生什么?

在 TCP 的三次握手過程中,如果 第三次 ACK 丟失,TCP 是如何保證連接可靠建立的呢?1?? 場景說明第三次 ACK:客戶端發送給服務器的 ACK,確認服務器的 SYN-ACK。假設該 ACK 在網絡傳輸過程中丟失。2?? 客戶端狀態客戶…

容智Report Agent2.0重磅發布!重新定義企業數據分析AI時代

在數據成為生產要素之一的今天,很多企業依然面臨這樣的困境: 想要一份年度財務分析,財務團隊可能要忙半個月甚至一個月;想查一個業務指標,要先找出在哪個系統,再申請權限、寫SQL、調報表,折騰半…

高階數據結構---ST表

hello大家好,今天是2025年8月23日,我要來給大家分享的是一個高階數據結構---ST表。 一:引入 1.RMQ問題: 對于一個長度為 n 的序列,有 m 次查詢操作,每次查詢為一個區間 [l,r] 的最大值&#…

docker 安裝nacos(vL2.5.0)

查找nacos 的所需的鏡像版本 https://hub.docker.com/r/nacos/nacos-server/tags 拉取你所需的版本(我們用v2.5.0) docker pull nacos/nacos-server:v2.5.0 注意:因為我們需要掛載外配置文件 直接用volume 掛載目錄 缺少初始文件報錯 我們…

在github上通過dmca數字版權申訴侵權并刪除侵權倉庫

DMCA是什么? 《數字千年版權法案》(DMCA)為版權所有者(包括軟件開發人員)創建了一個標準化的流程,要求GitHub刪除侵權內容。您可以在美國版權局的官方網站上找到有關DMCA的更多信息。有關GitHub如何處理DM…

AI安全監控與人才需求的時間悖論(對AI安全模型、AI安全人才需求的一些思考)

當監控者與被監控者都是AI時,誰來監控監控者?這個看似簡單的問題,卻揭示了人工智能安全領域的根本性困境。一、問題的提出:當AI監控AI 隨著大語言模型和生成式AI的快速發展,AI系統在元認知層面的能力越來越強&#xff…

AI模型部署 - 大型語言模型(LLM)推理部署中的實際顯存評估

目錄 第一部分:大型語言模型(LLM)推理顯存占用的核心原理 1.1 顯存占用的主要構成部分 1.2 影響顯存占用的關鍵因素 1.2.1 模型架構:MoE vs. 稠密模型 1.2.2 上下文長度與并發數 1.2.3 部署方式與推理框架 1.2.4 硬件能力 第二部分:顯存占用的精確計算方法 2.1 模…

【大語言模型 16】Transformer三種架構深度對比:選擇最適合你的模型架構

【大語言模型 16】Transformer三種架構深度對比:選擇最適合你的模型架構 關鍵詞:Transformer架構,Encoder-Only,Decoder-Only,Encoder-Decoder,BERT,GPT,T5,模型選擇&…

【LeetCode 熱題 100】31. 下一個排列

Problem: 31. 下一個排列 文章目錄整體思路完整代碼時空復雜度時間復雜度:O(N)空間復雜度:O(1)整體思路 這段代碼旨在解決經典的 “下一個排列” (Next Permutation) 問題。問題要求重新排列一個整數數組,使其變為字典序上的下一個更大的排列…

【Linux 進程】進程程序替換

文章目錄1.進程替換的六個庫函數2.execl1.進程替換的六個庫函數 使用 man 3 execl 進行查詢,3表示 Linux 中的3號手冊,即為庫函數(例如C標準庫中的庫函數,printf,malloc) man 1: 用戶命令(在sh…

ReasonRank: Empowering Passage Ranking with Strong Reasoning Ability

主要內容總結 本文提出了一種具有強推理能力的列表式段落重排序模型ReasonRank,旨在解決現有重排序模型在推理密集型場景(如復雜問答、數學問題、代碼查詢等)中表現不佳的問題,核心原因是這類場景缺乏高質量的推理密集型訓練數據。 為解決這一問題,研究團隊: 設計了自動…

不卡頓、不掉線!穩定可靠的體育賽事直播系統源碼解析

在體育和電競行業,實時直播系統已經成為平臺的標配。無論是 OTT、比分直播網站,還是綜合類體育社區,用戶對直播體驗的要求越來越高:不卡頓、不掉線、實時性強。那么,從技術角度出發,一個穩定可靠的 體育賽事…

三菱FX5U PLC訪問字變量的某一位

三菱FX5U PLC氣缸控制功能塊 三菱FX5U氣缸控制功能塊(完整ST源代碼+示例程序)_三菱fx5u標簽氣缸報警程序功能塊-CSDN博客文章瀏覽閱讀560次,點贊5次,收藏2次。如果機器包含100個氣缸,我們只需要修改數組的元素數量就可以了,效率非常的高。待續....博途PLC 面向對象系列之“…

Java大廠面試全真模擬:從Spring Boot到微服務架構實戰

Java大廠面試全真模擬:從Spring Boot到微服務架構實戰 面試場景:某互聯網大廠Java后端崗位,候選人謝飛機(水貨程序員) 第一輪:基礎與框架認知 面試官:你好,謝飛機,先簡單…

Unity游戲打包——Mac基本環境雜記

1、安裝 Homebrew若未安裝,在使用 brew 命令時將提示 zsh: command not found: brew安裝命令:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"2、更換終端默認 Shell 為 zsh查看已安裝的shell&#…

服務組件體系結構(SCA)全景解析

服務組件體系結構(SCA)全景解析SCA(Service Component Architecture)是 SOA 生態中專門用來“把服務拼起來并跑起來”的規范。它通過語言中立、協議可插拔、裝配聲明式三大能力,把“接口—實現—協議”徹底解耦&#x…

問:單證碩士含金量是否不足?

很多人認為花幾萬塊錢讀一個同等學歷申碩,含金量并沒有那么高,但事實卻并非如此。今天我們從證書和學習的兩個方面來聊一下同等學歷申碩的含金量到底是如何的。一、單證含金量看以下幾點:(1)國家認證與學信網可查 …