一.说明
平常很经常需要对一堆文件进行一些特定规则的重命名操作,一个个进行费时费力,这里列举了一些批量对文件进行重命名的程序
二.程序使用环境说明
需求:文件夹中存有一批文件,需要对这批文件按照txt文件中的规则进行重命名
1.利用python进行
import os
import os.path as osp
import glob
def renameFile(renameFileDir="", nameTxtFilePath=''):
# 1.找到要重命名的文件列表
renameFileList = glob.glob(osp.join(renameFileDir, "*.mp4"))
print("要更改名称的文件列表:") # 打印文件列表
print(renameFileList) # 打印文件列表
# 2.读取txt文件中的信息
with open(nameTxtFilePath, "r") as f:
datas = f.readlines()
print("txt文件列表中的信息:")
print(datas)
for data in datas:
# 3.根据txt文件中每条数据的内容,对相应文件进行重命名,这里的规则根据自己的需要进行定义
#############################################################################################################
print(data.split("2022")) # 利用2022分割出需要的字符,其中分割后列表第一个中前后17个字符为要替换名称的文件原始名称
name = data.split("2022")[0][-17:-1] + "0" # 从分割出的字符中提取原始文件的名称
# 这里剩余的分割字符中为时间信息,就是我要重命名的名称
time = "2022" + data.split("2022")[1].split("-")[1] + data.split("2022")[1][4:6] + "_" + data.split("2022")[1][7:15].replace(":", "") + "_" + data.split("2022")[2][7:15].replace(":", "")
#############################################################################################################
# 4.遍历文件列表中的文件,一个个的替换名称
for renameFile in renameFileList:
if renameFile.split("\\")[-1].replace(".mp4", "")==name:
print("重命名文件名称:" + renameFile.split("\\")[-1].replace(".mp4", ""))
print("更改后文件名称:" + time)
# 5.进行重命名
os.rename(renameFile, renameFile.replace(name, time))
if __name__ == "__main__":
renameFileDir = "C:\\Users\\admin\\Web\\DownloadFiles\\2022-12-24\\" # 要重命名的文件所在目录
nameTxtFilePath = "C:\\Users\\admin\\Web\\DownloadFiles\\2022-12-24\\name.txt" # 要命名的txt文件所在路径
renameFile(renameFileDir, nameTxtFilePath)