最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中實(shí)現(xiàn)文件批量處理的自動(dòng)化腳本

 更新時(shí)間:2025年11月14日 08:19:47   作者:程序員愛釣魚  
在實(shí)際開發(fā)、數(shù)據(jù)整理或辦公自動(dòng)化中,我們經(jīng)常需要一次性處理大量文件,本章將從常見場景出發(fā),通過示例腳本幫助你快速掌握文件批量處理能力

在實(shí)際開發(fā)、數(shù)據(jù)整理或辦公自動(dòng)化中,我們經(jīng)常需要一次性處理大量文件,例如:

  • 批量重命名文件
  • 批量復(fù)制/移動(dòng)文件
  • 批量壓縮文件
  • 批量格式轉(zhuǎn)換
  • 批量讀取與寫入文本內(nèi)容

Python 的標(biāo)準(zhǔn)庫中,os、shutil、glob 等模塊可以輕松構(gòu)建各種文件批處理腳本,是自動(dòng)化辦公與數(shù)據(jù)清洗的利器。

本章將從常見場景出發(fā),通過示例腳本幫助你快速掌握文件批量處理能力。

一、基礎(chǔ)庫介紹

1. os 模塊

提供文件路徑、文件夾、新建/刪除目錄等操作。

常用方法:

  • os.listdir()
  • os.rename()
  • os.path.exists()
  • os.makedirs()
  • os.remove()

2. shutil 模塊

執(zhí)行高級文件操作:

  • 拷貝文件:shutil.copy()
  • 移動(dòng)文件:shutil.move()
  • 拷貝整個(gè)文件夾:shutil.copytree()

3. glob 模塊

使用通配符批量匹配文件,例如:

glob.glob("*.txt")
glob.glob("images/*.jpg")

是處理大量文件時(shí)非常方便的模塊。

二、批量重命名文件

例如:把文件名全部改為統(tǒng)一格式 img_001.jpg、img_002.jpg。

import os

folder = "images"

files = os.listdir(folder)

for i, filename in enumerate(files, start=1):
    old_path = os.path.join(folder, filename)
    ext = os.path.splitext(filename)[1]
    new_name = f"img_{i:03d}{ext}"
    new_path = os.path.join(folder, new_name)
    os.rename(old_path, new_path)

print("重命名完成。")

技術(shù)要點(diǎn)

  • os.path.splitext() 可獲得文件擴(kuò)展名
  • i:03d 生成 001、002 的數(shù)字序號

三、批量復(fù)制/移動(dòng)文件

1. 批量復(fù)制

import shutil
import glob

src_files = glob.glob("data/*.txt")
dst_folder = "backup"

os.makedirs(dst_folder, exist_ok=True)

for file in src_files:
    shutil.copy(file, dst_folder)

print("復(fù)制完成。")

2. 批量移動(dòng)

import shutil
import glob

for file in glob.glob("data/*.csv"):
    shutil.move(file, "csv_files")

print("移動(dòng)完成。")

四、批量刪除文件

例如,刪除所有 .log 文件:

import os
import glob

for file in glob.glob("logs/*.log"):
    os.remove(file)

print("刪除完成。")

目錄刪除使用 shutil.rmtree("folder")

五、批量讀取文本內(nèi)容并寫入?yún)R總文件

比如,你有 100 個(gè) .txt 日志文件,需要匯總到一個(gè)文件。

import glob

files = glob.glob("logs/*.txt")

with open("summary.txt", "w", encoding="utf-8") as outfile:
    for file in files:
        with open(file, "r", encoding="utf-8") as f:
            outfile.write(f"=== 文件:{file} ===\n")
            outfile.write(f.read())
            outfile.write("\n\n")

print("匯總完成。")

六、批量修改文件內(nèi)容(查找 + 替換)

在大量 .txt 文件中,將所有 "測試" 替換為 "正式"

import glob

for file in glob.glob("docs/*.txt"):
    with open(file, "r", encoding="utf-8") as f:
        text = f.read()

    text = text.replace("測試", "正式")

    with open(file, "w", encoding="utf-8") as f:
        f.write(text)

print("批量替換完成。")

七、批量壓縮文件(zipfile模塊)

import zipfile
import glob

files = glob.glob("data/*.csv")

with zipfile.ZipFile("data.zip", "w") as zipf:
    for file in files:
        zipf.write(file)

print("壓縮完成。")

八、批量處理的實(shí)戰(zhàn)案例:自動(dòng)整理下載目錄

下面給出一個(gè)實(shí)戰(zhàn)腳本,把下載目錄按文件類型分類:

import os
import shutil
import glob

download_folder = "downloads"

file_types = {
    "圖片": ["*.jpg", "*.png"],
    "視頻": ["*.mp4"],
    "壓縮包": ["*.zip", "*.rar"],
    "文檔": ["*.pdf", "*.docx", "*.txt"]
}

for folder_name, patterns in file_types.items():
    target_folder = os.path.join(download_folder, folder_name)
    os.makedirs(target_folder, exist_ok=True)

    for pattern in patterns:
        for file in glob.glob(os.path.join(download_folder, pattern)):
            shutil.move(file, target_folder)

print("下載目錄已整理完畢!")

執(zhí)行后,文件會(huì)自動(dòng)分類到各自目錄,辦公效率提升非常明顯。

九、文件批處理腳本的最佳實(shí)踐

  • 使用 glob 匹配大量文件更快
  • 寫入文件前備份原文件
  • 對文件操作加入 try/except 防止腳本崩潰
  • 復(fù)雜任務(wù)建議封裝成函數(shù)或類

示例:

try:
    shutil.move(src, dst)
except Exception as e:
    print("移動(dòng)失?。?, e)

十、總結(jié)

本章你掌握了 Python 在文件自動(dòng)化中的核心技能:

  • 批量重命名
  • 批量復(fù)制、移動(dòng)、刪除
  • 批量讀取、寫入和替換內(nèi)容
  • 批量壓縮
  • 使用 glob 進(jìn)行文件匹配
  • 實(shí)戰(zhàn):自動(dòng)整理下載目錄

這些腳本結(jié)合日常辦公場景,可以最大化提升工作效率,是每個(gè) Python 工程師必須掌握的技能點(diǎn)。

到此這篇關(guān)于Python中實(shí)現(xiàn)文件批量處理的自動(dòng)化腳本的文章就介紹到這了,更多相關(guān)Python文件批量處理腳本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 聊聊.py和.ipynb的一些小知識

    聊聊.py和.ipynb的一些小知識

    這篇文章主要介紹了聊聊.py和.ipynb的一些小知識,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python數(shù)據(jù)可視化Pyecharts庫的使用教程

    Python數(shù)據(jù)可視化Pyecharts庫的使用教程

    pyecharts是一個(gè)用于生成echarts圖表的類庫。echarts是百度開源的一個(gè)數(shù)據(jù)可視化庫,用echarts生成的圖可視化效果非常棒。使用pyechart庫可以在python中生成echarts數(shù)據(jù)圖。本文將詳細(xì)介紹一下Pyecharts庫的使用,需要的可以參考一下
    2022-02-02
  • Python用61行代碼實(shí)現(xiàn)圖片像素化的示例代碼

    Python用61行代碼實(shí)現(xiàn)圖片像素化的示例代碼

    這篇文章主要介紹了Python用61行代碼實(shí)現(xiàn)圖片像素化的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Python處理PDF及生成多層PDF實(shí)例代碼

    Python處理PDF及生成多層PDF實(shí)例代碼

    Python提供了眾多的PDF支持庫,本篇文章主要介紹了Python處理PDF及生成多層PDF實(shí)例代碼,這樣就能夠?qū)崿F(xiàn)圖片掃描上來的內(nèi)容也可以進(jìn)行內(nèi)容搜索的目標(biāo)
    2017-04-04
  • Python操作Excel的10個(gè)必學(xué)腳本分享

    Python操作Excel的10個(gè)必學(xué)腳本分享

    Excel表格操作是我們?nèi)粘9ぷ髦胁豢苫蛉钡囊徊糠?而Python憑借其強(qiáng)大的數(shù)據(jù)處理能力,可以極大地提升我們操作Excel的效率,本文將介紹10個(gè)必學(xué)的Python腳本,需要的可以零基礎(chǔ)
    2025-03-03
  • Pycharm學(xué)習(xí)教程(2) 代碼風(fēng)格

    Pycharm學(xué)習(xí)教程(2) 代碼風(fēng)格

    這篇文章主要為大家詳細(xì)介紹了最全的Pycharm學(xué)習(xí)教程第二篇代碼風(fēng)格,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • PyQt5+requests實(shí)現(xiàn)車票查詢工具

    PyQt5+requests實(shí)現(xiàn)車票查詢工具

    這篇文章主要為大家詳細(xì)介紹了PyQt5+requests實(shí)現(xiàn)車票查詢工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python學(xué)習(xí)之subprocess模塊詳解

    python學(xué)習(xí)之subprocess模塊詳解

    這篇文章主要介紹了python學(xué)習(xí)之subprocess模塊的相關(guān)資料,該模塊用于創(chuàng)建子進(jìn)程并與其進(jìn)行交互,它提供了多個(gè)函數(shù)和類來執(zhí)行操作系統(tǒng)命令、獲取命令輸出以及管理子進(jìn)程的生命周期,需要的朋友可以參考下
    2024-12-12
  • python中使用smtplib和email模塊發(fā)送郵件實(shí)例

    python中使用smtplib和email模塊發(fā)送郵件實(shí)例

    python腳本發(fā)郵件,一般會(huì)用到smtplib和email這兩個(gè)模塊。看看該模塊怎么使用,先看smtplib模塊。 smtplib模塊定義了一個(gè)簡單的SMTP客戶端,可以用來在互聯(lián)網(wǎng)上發(fā)送郵件
    2014-04-04
  • Flask模板引擎之Jinja2語法介紹

    Flask模板引擎之Jinja2語法介紹

    這篇文章主要介紹了Flask模板引擎之Jinja2語法介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評論

阳春市| 梁山县| 沧州市| 淮阳县| 绥滨县| 军事| 布尔津县| 黄山市| 乌兰县| 金川县| 托克逊县| 株洲市| 盐亭县| 华蓥市| 北安市| 龙井市| 杭锦后旗| 上栗县| 阿坝| 宁陵县| 辽阳市| 祁连县| 崇信县| 江陵县| 浙江省| 丹江口市| 论坛| 确山县| 永仁县| 铜鼓县| 佳木斯市| 天台县| 合川市| 鄂伦春自治旗| 新安县| 萨嘎县| 乡城县| 故城县| 阜宁县| 凤庆县| 奇台县|