將大量檔案的擴充名中大寫字母改為小寫:Python實現

疯狂学习GIS發表於2024-05-25

  本文介紹基於Python語言,基於一個大資料夾,遍歷其中的多個子資料夾,對於每一個子資料夾中的大量檔案,批次將其檔案的名稱或字尾名中的字母由大寫修改為小寫的方法。

  本文期望實現的需求為:現有一個大資料夾,其中有多個子資料夾;如下圖所示。

image

  其中,每一個子資料夾內都有著大量的檔案,我們隨意開啟一個子資料夾,如下圖所示。如下圖紫色框內所示,這些檔案的擴充名都是大寫字母(也會有個別檔案當前的擴充名已經是小寫字母了);我們希望,對於當前擴充名是大寫字母的檔案,都將其字尾名修改為小寫字母

  這裡需要注意兩點——首先,本文的需求是將檔名中的字尾名由.TIF修改為.tif即可,所以就直接用了替換的方法;如果大家的需求有其他情況,比如要修改的字母是在檔名稱中而不是字尾名中,思路也是一致的;如果要修改的字母並不確定是什麼,則可以透過ASCII碼修改的方式實現大小寫轉換。其次,在Windows作業系統中,檔案字尾名是不區分大小寫的;而在類Unix系統(如LinuxmacOS)中,檔案字尾名是區分大小寫的;所以大家一定要結合實際情況來修改。

  瞭解了具體需求後,我們即可開始程式碼的實踐;本文用到的具體程式碼如下所示。

# -*- coding: utf-8 -*-

"""
Created on Fri Sep  1 10:03:57 2023

@author: fkxxgis
"""

import os

folder_path = "E:/02_Project/202307_NDVIProduce/Beijing_Preprocessing/Four_Result/50TMK"

for root, dirs, files in os.walk(folder_path):
    for file in files:
        if file.endswith(".TIF"):
            old_filepath = os.path.join(root, file)
            new_filename = file.replace(".TIF", ".tif")
            new_filepath = os.path.join(root, new_filename)
            os.rename(old_filepath, new_filepath)

  其中,上述程式碼的具體含義如下。

  首先,我們匯入了os模組,用於處理檔案和目錄操作;並定義了一個變數folder_path,用於儲存要遍歷的資料夾路徑。

  接下來,我們使用os.walk()函式遍歷資料夾路徑下的所有子資料夾、子檔案。對於每個檔案,檢查其檔名是否以.TIF結尾。如果是以.TIF結尾,則進行重新命名操作。其次,使用os.path.join()函式構建舊檔案路徑old_filepath,將檔名與其所在的資料夾路徑連線起來;隨後,使用.replace()方法將檔名中的.TIF替換為.tif,得到新的檔名new_filename。這裡大家實際應用時,就根據自己檔案的實際情況來修改即可。

  隨後,我們使用os.path.join()函式構建新檔案路徑new_filepath,將新檔名與原資料夾路徑連線起來;最後,使用os.rename()函式將舊檔案路徑old_filepath重新命名為新檔案路徑new_filepath

  執行上述程式碼,可以看到我們的檔案已經是修改之後的擴充名了。

  至此,大功告成。

相關文章