今天中午下了本书《The Scientist and Engineer's Guide to Digital Signal Processing》,一共34章,每章一个pdf:
类似于下面的,CH1~CH34
突然想看某个部分内容,发现没章节名好不方便啊,怎么办。。。咦,网页上有章节名哦:
选了一下,可以复制出来txt,放到了txt里面,好吧,每次找的时候打开txt看一眼也行啊。。不行,感觉还是不是很方便,我不在学python么,写了批量更名吧(之前弄过一个excel vba批量给pdf图纸改名的插件)。。。感觉这个应也不难。。。开始吧,才两点。。。
怎么搞呢,一上来就写:
1.先把txt读进来,这样的
1: The Breadth and Depth of DSP
先把1:等前缀去掉,留下后面的章节名,正好是按顺序的newlist
2.再用os.listdir(".")把根目录的文件都读进来,
然后把数字CH后面的数字拆出来,然后作为下标(index-1)去s索引newlist,然后在把CH1.PDF,用split(".",1)拆开,中间加上newlist[index-1]作为新的名字去os.rename(oldname,newname重命名去,想了半天感觉这样比较麻烦,突然想到了用dict可以直接索引,而且可以完成匹配判断的功能,就是把txt读进来新名字做成字典,先用split(":",1)拆开,把key构造成旧名的样子"CH"+"数字"+".PDF",直接完成下一步索引的功能,后面的章节名作为value存入dict。
3.尼玛五点了,一下午就过去了,就搞了个这个。。。。其实手动5分钟就改完了,上个代码吧,,,各位轻拍
import os
#path = os.getcwd()
f = open("t.txt","r")
slist = []
pdfname = {}
for line in f.readlines():
slist.append(line)
for i in range(len(slist)):
s = slist[i].split(":",1)
pdfname["CH"+s[0]+".PDF"] = s[1][:-1]#-1干掉\n
pdf = os.listdir(".")
for item in pdf:
try:
tmp = item.split(".",1)
newname = tmp[0]+pdfname[item]+"."+tmp[1]
os.rename(item,newname)
except KeyError:
continue