本文介绍基于Python语言,基于一个大文件夹,遍历其中的多个子文件夹,并对于每一个子文件夹中的大量文件,批量将其文件的名称或后缀名中的字母由大写修改为小写的方法。
本文期望实现的需求为:现有一个大文件夹,其中有多个子文件夹;如下图所示。
其中,每一个子文件夹内都有着大量的文件,我们随意打开一个子文件夹,如下图所示。如下图紫色框内所示,这些文件的拓展名都是大写字母(也会有个别文件当前的拓展名已经是小写字母了);我们希望,对于当前拓展名是大写字母的文件,都将其后缀名修改为小写字母。
这里需要注意两点——首先,本文的需求是将文件名中的后缀名由.TIF
修改为.tif
即可,所以就直接用了替换的方法;如果大家的需求有其他情况,比如要修改的字母是在文件名称中而不是后缀名中,思路也是一致的;如果要修改的字母并不确定是什么,则可以通过ASCII码修改的方式实现大小写转换。其次,在Windows操作系统中,文件后缀名是不区分大小写的;而在类Unix系统(如Linux和macOS)中,文件后缀名是区分大小写的;所以大家一定要结合实际情况来修改。
了解了具体需求后,我们即可开始代码的实践;本文用到的具体代码如下所示。
# -*- 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
。
运行上述代码,可以看到我们的文件已经是修改之后的拓展名了。
至此,大功告成。
欢迎关注:疯狂学习GIS