Python小脚本——批量修改文件名与文件扩展名

0x00:前言
有时候,需要对多个文件进行操作,批量修改名字或者修改文件的类型,改变文件扩展名。作为一个学编程的人,用鼠标一个一个的点击,不免太不方便了,也太low了。所以,干脆写个批量对文件名和文件扩展名修改的Python小脚本。
惭愧,正在学习Python,断断续续写了好几个小时。主要是对文件名进行正则匹配时,总是出错。最后不得以先放弃正则,用了字符串的replace方法。如果你有用正则写的,希望指点一下。

0x01:修改前后效果对比
修改前:
这里写图片描述
修改后:
这里写图片描述
0x02:源码

# coding:utf-8
# by LandGrey
# Function: Modify the file name or file postfix

import os

Path = r'c:\works\try' #要修改文件所处路径
all_file_list = os.listdir(Path) #列出指定目录下的所有文件
Oldpart = "test" #要替换的文件名中的部分
Newpart = "Land" #新的文件名部分

Oldpostfix =r".txt" #要修改的文件扩展名类型
Newpostfix = r".Grey" #新的文件扩展名类型

#批量修改文件名字
def Modifyprefix(oldcontent,newcontent):
   for file_name in all_file_list:
       currentdir =os.path.join(Path, file_name) #连接指定的路径和文件名or文件夹名字
       if os.path.isdir(currentdir): #如果当前路径是文件夹,则跳过
          continue
        fname = os.path.splitext(file_name)[0] #分解出当前的文件路径名字
        ftype = os.path.splitext(file_name)[1] #分解出当前的文件扩展名
        replname =fname.replace(oldcontent,newcontent) 
        newname = os.path.join(Path,replname+ftype) #文件路径与新的文件名字+原来的扩展名
        os.rename(currentdir,newname) #重命名
   print "Modify file name........"


#批量修改文件扩展名
def Modifypostfix(oldftype,newftype):
    for file_name in all_file_list:
        currentdir =os.path.join(Path,file_name)
        if os.path.isdir(currentdir): #跳过文件夹
           continue
        fname = os.path.splitext(file_name)[0]
        ftype = os.path.splitext(file_name)[1]
        if ftype ==oldftype: #找到需要修改的扩展名
          newname = os.path.join(Path,fname+newftype) #文件路径与原来的文件名字+新的扩展名
          os.rename(currentdir,newname) #重命名
    print "Modify file postfix...... "

Modifyprefix(Oldpart,Newpart)
Modifypostfix(Oldpostfix,Newpostfix)
print "finished !"

0x03:说明
详细的解说见注释。
由于博客改变了文本原缩进格式,虽我也尽力预览博文修改了,但还是请注意源码中的缩进。
共有两个不同的函数对应两个不同的功能,用到哪个最后就调用哪个,不用的那个函数就用“#”注释掉好了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值