批量修改文件夹名称
场景
在进行神经网络训练的时候,有些时候获取到的数据集的命名是不规则的,不便于直观理解数据的结构,由此需要进行批量重命名。本文提供Excel+Python脚本两种方式
Excel
如下图所示,文件是命名是乱序无规则的
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNyZuBnL4ADMhFDM4ITNxI2M5EWZ5IWM1QjYwQGM4kTO2ETNjdzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在该文件夹下打开命令行(在搜索栏中输入cmd可快速进入)
输入
dir /b>name.txt
后回车执行
关闭命令行后,当前目录存在name.txt文件
打开该文件,其中存在着该文件夹下所有的文件名,将其中自带的name.txt删除
可以看到以供3533个文件名,手动改名十分不可取,将name.txt中的全部文件名复制到Excel的A列中(原名称),B列为ren(cmd中的改名命令),C列为目标名称。按照合并公式合并三列。
最后将上述C列数据全部复制回name.txt(将原来的内容清空后,再复制回去)。
双击运行name.bat即可
Python脚本
废话不多说,直接上代码
# Time: 2023/2/21 10:01
# Author: Junior_Jo
# Description:批量重命名文件
import os
def rename(path):
"""
将指定目录下的文件按照固定格式修改
:param path: 指定目录
:return: None
"""
file_names = os.listdir(path) #获取文件夹下所有文件名
print(file_names)
#改名
for index in range(len(file_names)):
os.rename(os.path.join(path,file_names[index]),os.path.join(path,f"{index:06d}"))
print(os.listdir(path))
if __name__ == "__main__":
path = "D:\\tt"
rename(path)