??本文介紹基于Python語(yǔ)言,基于一個(gè)大文件夾,遍歷其中的多個(gè)子文件夾,對(duì)于每一個(gè)子文件夾中的大量文件,批量將其文件的名稱或后綴名中的字母由大寫(xiě)修改為小寫(xiě)的方法。
??本文期望實(shí)現(xiàn)的需求為:現(xiàn)有一個(gè)大文件夾,其中有多個(gè)子文件夾;如下圖所示。

??其中,每一個(gè)子文件夾內(nèi)都有著大量的文件,我們隨意打開(kāi)一個(gè)子文件夾,如下圖所示。如下圖紫色框內(nèi)所示,這些文件的拓展名都是大寫(xiě)字母(也會(huì)有個(gè)別文件當(dāng)前的拓展名已經(jīng)是小寫(xiě)字母了);我們希望,對(duì)于當(dāng)前拓展名是大寫(xiě)字母的文件,都將其后綴名修改為小寫(xiě)字母。

??這里需要注意兩點(diǎn)——首先,本文的需求是將文件名中的后綴名由.TIF修改為.tif即可,所以就直接用了替換的方法;如果大家的需求有其他情況,比如要修改的字母是在文件名稱中而不是后綴名中,思路也是一致的;如果要修改的字母并不確定是什么,則可以通過(guò)ASCII碼修改的方式實(shí)現(xiàn)大小寫(xiě)轉(zhuǎn)換。其次,在Windows操作系統(tǒng)中,文件后綴名是不區(qū)分大小寫(xiě)的;而在類Unix系統(tǒng)(如Linux和macOS)中,文件后綴名是區(qū)分大小寫(xiě)的;所以大家一定要結(jié)合實(shí)際情況來(lái)修改。
??了解了具體需求后,我們即可開(kāi)始代碼的實(shí)踐;本文用到的具體代碼如下所示。
# -*- 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)
??其中,上述代碼的具體含義如下。
??首先,我們導(dǎo)入了os模塊,用于處理文件和目錄操作;并定義了一個(gè)變量folder_path,用于存儲(chǔ)要遍歷的文件夾路徑。
??接下來(lái),我們使用os.walk()函數(shù)遍歷文件夾路徑下的所有子文件夾、子文件。對(duì)于每個(gè)文件,檢查其文件名是否以.TIF結(jié)尾。如果是以.TIF結(jié)尾,則進(jìn)行重命名操作。其次,使用os.path.join()函數(shù)構(gòu)建舊文件路徑old_filepath,將文件名與其所在的文件夾路徑連接起來(lái);隨后,使用.replace()方法將文件名中的.TIF替換為.tif,得到新的文件名new_filename。這里大家實(shí)際應(yīng)用時(shí),就根據(jù)自己文件的實(shí)際情況來(lái)修改即可。
??隨后,我們使用os.path.join()函數(shù)構(gòu)建新文件路徑new_filepath,將新文件名與原文件夾路徑連接起來(lái);最后,使用os.rename()函數(shù)將舊文件路徑old_filepath重命名為新文件路徑new_filepath。
??運(yùn)行上述代碼,可以看到我們的文件已經(jīng)是修改之后的拓展名了。

??至此,大功告成。