我已经下载了一些文件,并使用数字作为前缀命名它们,以按顺序排列它们(是视频):
_01_filename
_02_filename
_10_filename
_100_filename
_101_filename
....
_20_filename
如您在上面的示例中看到的,100紧随10之后而不是99之后
所以,我想读它们,并将它们重命名为001,020在这种情况下。
实际检查文件数,然后根据文件数确定零个数(在前面)
因此,我正在考虑创建一个包含要扫描的文件夹的列表:
[folder1, folder2, folder3,...]
并获取文件总数。
不,我必须保持其先前的顺序,而不要弄乱顺序。按名称排序不是一种选择,因为10后我会得到100
import os
import re
filenames = os.listdir()
def rename(old_filename,new_filename):
old_path = os.path.join(os.getcwd(), old_filename)
new_path = os.path.join(os.getcwd(), new_filename)
try:
os.rename(old_path, new_path)
return True
except:
return False
for file in filenames:
#removing underscores if any in starting of name
if file[0] == '_':
length = len(file)
newfilename = file[1:length]
#finding integers in string (finidng in starting four letters only)
digit = re.findall('\d+',newfilename[0:3])
#formatting numbers with prefix zero
y = digit[0]
newdigit = '{:03}'.format(int(y))
newfiletemp = newfilename.lstrip(y)
newfile = newdigit + newfiletemp
rename(file,newfile)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句