python 批量改名

今天中午下了本书《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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值