该脚本用于批量重命名文件夹中的文件,将文件名保留到指定的某一部分。具体来看,文件名以分隔符
"_"
和"."
分割,只保留文件名的前缀和扩展名。
代码块
import os
def rename_files(folder_path):
"""
批量修改文件名,将指定子字符串从文件名中删除。
参数:
- folder_path (str): 文件夹路径。
"""
for filename in os.listdir(folder_path):
# 获取新文件名
temp_name = filename.split('_')[0]
new_filename = temp_name + '.' + filename.split('.')[-1]
# 构造完整的文件路径
old_file_path = os.path.join(folder_path, filename)
new_file_path = os.path.join(folder_path, new_filename)
# 重命名文件
os.rename(old_file_path, new_file_path)
print(f"Renamed: {filename} -> {new_filename}")
if __name__ == "__main__":
# 文件夹路径
folder_path = r"E:\xxx"
# 执行重命名
rename_files(folder_path)
代码讲解
函数 rename_files(folder_path)
-
os.listdir(folder_path)
列出指定文件夹路径中的所有文件。 -
filename.split('_')[0]
通过_
分隔文件名,并提取分隔后的第一部分作为新文件名的主部分。- 示例:如果文件名是
"example_WI.tif"
,filename.split('_')[0]
会得到"example"
。
- 示例:如果文件名是
-
filename.split('.')[-1]
通过.
分隔文件名,并提取分隔后的最后一部分作为扩展名。- 示例:对于
"example_WI.tif"
,filename.split('.')[-1]
会得到"tif"
。
- 示例:对于
-
os.path.join(folder_path, filename)
生成完整的文件路径。 -
os.rename(old_file_path, new_file_path)
使用os.rename
将文件名从旧路径重命名为新路径。
主程序
-
folder_path
定义目标文件夹路径,程序将在该路径中操作文件名。 -
执行函数
调用rename_files(folder_path)
,批量修改目标路径中的文件名。
示例分析
假设文件夹 E:\_OrderingProject\F_IslandsBoundaryChange\c_GeeData\SIDs_Grid_Y20
下包含以下文件:
example_WI.tif
test_WI.tif
file_WI.tif
运行代码后,重命名过程如下:
原始文件名 | 新文件名 |
---|---|
example_WI.tif | example.tif |
test_WI.tif | test.tif |
file_WI.tif | file.tif |
程序关键点
-
灵活性
文件名可以根据不同的分隔符或规则进行修改。 -
通用性
适用于任何文件类型,例如.tif
、.jpg
、.png
等。 -
注意事项
- 确保目标文件夹中没有同名文件,以避免覆盖。
- 如果文件名中没有分隔符
_
,可能导致重命名出错,可添加额外检查。
如果这对您有所帮助,希望点赞支持一下作者! 😊


