小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

從繁瑣到簡單:Python實現(xiàn)快速批量文件重命名攻略!

 攻城獅成長日志 2024-08-21 發(fā)布于廣東

?

大家好!我是一個熱衷于分享IT技術的up主。在這個公眾號里,我將為大家?guī)碜钚?、最實用的技術干貨,從編程語言到前沿科技,從軟件開發(fā)到網(wǎng)絡安全。希望通過我的分享,能夠幫助更多的小伙伴提升技術水平,共同成長!歡迎關注,一起探索科技的魅力吧!

?

在日常工作中,我們常常需要對大量文件進行重命名操作。這種需求可能源于文件名不規(guī)范、需要統(tǒng)一格式,或是為了便于文件管理。然而,手動修改大量文件名不僅費時費力,還容易出錯。本文將介紹如何使用Python腳本實現(xiàn)批量修改文件名,幫助你提高工作效率。

為什么選擇Python來修改文件名?

Python 作為一種強大且易學的編程語言,在處理文件和目錄操作時表現(xiàn)尤為出色。借助 Python 的內置庫 osos.path,我們可以輕松地實現(xiàn)文件遍歷、路徑操作和文件名修改等功能。相比于手動操作或依賴其他工具,Python腳本的優(yōu)勢在于:

  • 自動化:一次編寫,多次執(zhí)行,適用于各種場景。

  • 可定制:根據(jù)不同需求,自由定義文件名修改規(guī)則。

  • 可擴展:隨著需求變化,輕松調整或增加功能。

核心實現(xiàn)思路

在實現(xiàn)批量修改文件名的過程中,主要涉及以下幾個步驟:

  1. 遍歷目標目錄:通過Pythonos.walk() 方法遍歷指定目錄下的所有文件和子目錄。

  2. 過濾文件和目錄:區(qū)分文件和目錄,僅對文件進行重命名。

  3. 定義重命名規(guī)則:根據(jù)實際需求定義文件名修改的規(guī)則,如統(tǒng)一大小寫、添加前綴或后綴、替換部分字符串等。

  4. 執(zhí)行重命名操作:調用 os.rename() 方法,將舊文件名替換為新文件名。

示例代碼與詳細解析

以下是一個完整的Python腳本,示范如何批量修改目錄中所有文件的文件名,并排除目錄本身:

import os
import logging

# 配置日志
logging.basicConfig(
    filename='file_rename.log',  # 日志文件名
    level=logging.INFO,          # 日志級別
    format='%(asctime)s - %(levelname)s - %(message)s',  # 日志格式
)

def rename_files_in_directory(directory, rename_function):
    try:
        # 遍歷目錄中的所有文件和子目錄
        for root, dirs, files in os.walk(directory):
            for file_name in files:
                try:
                    # 獲取文件的完整路徑
                    old_file_path = os.path.join(root, file_name)
                    # 使用傳入的重命名函數(shù)生成新文件名
                    new_file_name = rename_function(file_name)
                    new_file_path = os.path.join(root, new_file_name)
                    
                    # 檢查新文件名是否已存在,避免沖突
                    if os.path.exists(new_file_path):
                        logging.warning(f"File already exists: {new_file_path}, skipping rename.")
                        continue
                    
                    # 重命名文件
                    os.rename(old_file_path, new_file_path)
                    logging.info(f"Renamed: {old_file_path} -> {new_file_path}")
                
                except Exception as e:
                    # 捕獲單個文件重命名時的異常并記錄錯誤信息
                    logging.error(f"Failed to rename {file_name} in {root}{str(e)}")
    except Exception as e:
        # 捕獲整個遍歷過程中可能出現(xiàn)的異常
        logging.critical(f"Critical error while processing directory {directory}{str(e)}")

def simple_rename(file_name):
    # 簡單的重命名函數(shù),將文件名全部改為小寫
    return file_name.lower()

# 指定需要處理的目錄路徑
directory_path = '/path/to/your/directory'

# 調用重命名函數(shù)
rename_files_in_directory(directory_path, simple_rename)

os.walk() 的使用

os.walk() 是一個生成器,它允許我們遍歷指定目錄下的所有子目錄和文件。對于每個目錄,os.walk() 返回一個三元組 (root, dirs, files),其中 root 是當前目錄路徑,dirs 是該目錄下的子目錄列表,files 是該目錄下的文件列表。

文件名重命名規(guī)則

在示例中,我們定義了一個簡單的重命名函數(shù) simple_rename(),它將文件名轉換為小寫。你可以根據(jù)自己的需求,修改或擴展這個函數(shù)。例如,你可以添加一個前綴或后綴、替換特定字符、按序號重命名等。

def custom_rename(file_name):
    # 添加前綴和后綴示例
    return f"prefix_{file_name}_suffix"

os.rename() 實現(xiàn)文件重命名

os.rename(old_path, new_path) 方法用于重命名文件或目錄。它接受兩個參數(shù):舊文件路徑和新文件路徑。如果新文件路徑已存在,將會覆蓋舊文件。因此,在執(zhí)行批量重命名操作前,務必確保新文件名不會沖突。

腳本演示

例如某個目錄有如下圖所示的文件,由于項目的結算需要,對文件名有特殊的要求。現(xiàn)需要把下圖所有文件名格式修改成災備中心備份系統(tǒng)巡檢表運行情況(2024年6月1日).pdf。這種格式的名稱。

修改前

因此,我們只需要對simple_rename這個函數(shù)進行改寫即可實現(xiàn)需求。關鍵代碼如下:

def simple_rename(file_name):
    # 簡單的重命名函數(shù),將文件名全部改為小寫
    return "災備中心備份系統(tǒng)巡檢表運行情況({}).pdf".format(file_name.split("-")[1][0:11])

執(zhí)行成功后,該目錄下的所有文件都重新命名了,如下圖所示:

修改后

五、總結

通過本文的介紹,相信你已經掌握了如何利用Python腳本實現(xiàn)批量修改文件名。這種方法不僅靈活高效,還可以根據(jù)不同需求進行定制和擴展。在日常工作中,借助Python腳本,你可以更輕松地處理文件管理任務,提高工作效率。如果你有更多的文件操作需求,不妨嘗試用Python來解決,相信你會發(fā)現(xiàn)它的更多潛力。


腳本獲取方式

上述腳本已經上傳上傳到gitee,有需要的小伙伴可以自行獲取。gitee上的倉庫主要是分享一些工作中常用的腳本。小伙伴可以frok或者watch倉庫,這樣有更新可以及時關注到。

倉庫地址:

https:///didiplus/script

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多