python脚本编程:批量修改指定目录内文件名

有的时候经常用到这个功能,批量修改视频或者图片的名字,按照数字编号等等,自己用python脚本解决,轻量级又方便。

简单版

对单个目录下文件后缀名
demo.py

#coding:utf-8
import os
# 列出当前目录下所有的文件
files = os.listdir(".")  
for filename in files:
    portion = os.path.splitext(filename)
    # 如果后缀是.mp4
    if portion[1] == ".mp4":  
        # 重新组合文件名和后缀名   
        newname = portion[0] + ".rmvb"   
        os.rename(filename,newname)

将该脚本放在要修改的文件夹内,必须在当前目录执行脚本

功能强化版

可以递归修改子文件夹内的文件,并按照规定编号
rename_batch.py

#coding:utf-8
#用于支持中文
import os

def renameFiles(cur_dir):   
    #列出某个目录下的文件和文件夹,可以是绝对和相对目录  
    files=os.listdir(cur_dir)

    #切换到这个路径作为工作目录,这句要放在listdir后面
    os.chdir(cur_dir) 

    #递归遍历所有文件和文件夹,修改文件名,可以只针对特定后缀的文件更改
    for fileName in files:
        print fileName

    #递归子文件夹
    for fileName in files:
        if os.path.isdir(fileName): 
            print "***scan sub folder***"       
            renameFiles(fileName)
            os.chdir(os.pardir) #别忘了切换到父目录

    #对这个目录的文件重命名
    for i in range(0,len(files)):
        fileNameArray=os.path.splitext(files[i])
        if len(fileNameArray)==2 and (fileNameArray[1]==".fbx" or fileNameArray[1]==".FBX"):
            newFileName=str(i)+fileNameArray[0]+".obj"

            os.rename(files[i],newFileName)
            print files[i]+" rename file succeeded"

if __name__ == '__main__':
    renameFiles(".")

注意:

  • 必须用chdir切换到某个目录才可以用os.rename函数
  • 如果不用chdir可以尝试每次进入目录用os.path.join拼接成完整的文件名再用os.rename作操作
  • 文件必须有操作系统赋予的可修改权限,不能是C盘或只读

效果

修改前
这里写图片描述
这里写图片描述

修改后
这里写图片描述
这里写图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值