批量重命名多个子目录下图片名称,并返回没有重命名的文件夹名称
针对上一篇博客做了修改,可以返回没有重命名的文件夹名称,方便查看对应的txt里的地名是否需要修改。
目录示例
- 2019-9-20
- 大坨头
- 1_0_1.jpg
- 1_0_2.jpg
- 1_0_3.jpg
…
- 前丞相
- 2_0_1.jpg
- 2_0_2.jpg
- 2_0_3.jpg
…
- 莱茵家园
重命名之后(地名对应的编号_照片排序编号_根目录时间)
- 2019-9-20
- 大坨头
- 001_001_20190920.jpg
- 001_002_20190920.jpg
- 001_003_20190920.jpg
代码如下:
import os
import sys
def Rename( ):
list=[]
m = 0
k = 0
lastname = "_20190315"
startNumber = 1
fileType = ".jpg"
f = open("C:\\Users\\黄\\Desktop\\test\\1.txt", "r", encoding="utf-8")
lines = f.readlines()
for line in lines:
line = line.strip()
list.append(line)
number = {}
i = 1
for ls in list:
if i < 10:
number[ls] = str("00"+str(i))
else:
number[ls] = str("0"+str(i))
i += 1
f.close()
print("txt里的行数:"+str(number.__len__()))
noexist=[]
path = input("请输入路径(例如D:\\\\picture):")
filelist = os.listdir(path)
print("该时间内文件夹个数:" + str(filelist.__len__()) + "个,已经重命名的文件夹名称如下:")
for filename in filelist:
for placename in sorted(number.keys()):
if filename == placename:
print(filename)
path1 = str(path) + str("\\") + str(filename)
count = 0
subfilelist = os.listdir(path1)
for files in subfilelist:
Olddir = os.path.join(path1, files)
if os.path.isdir(Olddir):
continue
Newdir = os.path.join(path1, number[placename] + "_" + str(
"00" + str(count + int(startNumber))) + lastname + fileType)
os.rename(Olddir, Newdir)
count += 1
m += 1
k += 1
if filename not in number.keys():
noexist.append(filename)
print("\n一共修改了" + str(k) + "个文件夹," + str(m) + "张照片")
print("\n未重命名的文件夹如下:")
for nocatch in noexist:
print(nocatch)
Rename()