python实现文件重命名_python实现批量文件重命名(打包为exe执行文件)

业务需求,需要对文件进行批量重命名,于是就研究了下用python实现了,并利用pyinstaller打包py文件成windows可执行的exe文件生成了可执行文件,懒得配置环境的老铁可以下载我打包好的exe执行文件:下面贴出源码:

import os

print('''

输入说明:

*********************回车取默认值**********************

head: 重命名序号的开头,默认为空,以重命名lammy_00001.png则是: lammy_

tail: 重命名序号的结尾:默认和源文件格式相同,如:a.png则是 .png

indexLength: 重命名种序号的位数,如lammy_00001.png,则为00001这部分,indexLength=5

index start:重命名种序号的其实位置,如lammy_00000.png,如果index start = 3,则从lammy_00003.png开始''')

def get_file_tail(file_name):

tail_index = file_name.rfind('.')

if tail_index != -1:

tail_style = file_name[tail_index:len(file_name)]

return tail_style

else:

return ''

srcTail = ''

while True:

path = input('please input dictionary : ')

try:

fileList = os.listdir(path)

if len(fileList) > 0:

srcTail = get_file_tail(fileList[0])

print("srcTail = " + srcTail)

break

else:

print('the dictionary is null, please input correct dictionary !')

except Exception as e:

print('please input correct dictionary !')

head = input('please input head : ')

tail = input('please input tail : ')

if tail.strip() == '':

tail = srcTail

while True:

indexLength = input('please input indexLength : ')

if indexLength.strip() == '':

indexSize = -1

break

else:

try:

indexSize = int(indexLength)

# print('indexSize' + indexSize)

if len(str(len(fileList))) <= indexSize:

break

else:

print("the input number is too small, is smaller than number's length of directory files :" + len(fileList))

except ValueError as e:

print('please input number')

n = 0

while True:

nString = input('please input index start : ')

if nString.strip() == '':

n = 0

break

else:

try:

n = int(nString)

if indexSize == -1:

break

if len(str(n + len(fileList) - 1)) <= indexSize:

break

else:

print("the input number is too large, the last file index's number length > indexLength ")

except ValueError as e:

print('please input number')

for i in range(len(fileList)):

oldName = path + os.sep + fileList[i]

length = len(str(n))

if indexSize == -1:

index = str(n)

else:

index = (indexSize - length)*'0' + str(n)

newName = path + os.sep + head + index + tail

os.rename(oldName, newName)

print(fileList[i] + " -------> " + (head + index + tail))

n += 1

cb914d4f33a6

image.gif

如果您觉得有用,您的打赏就是对我最大的支持,做更多好玩,好用的小工具