批量修改文件名称

新手小白一个,这两天在整理文件的时候发现一个一个改名字实在太麻烦了,于是就花了一晚上写了一个功能较为全面批量修改文件名称的程序,又花了两天零零散散地给里面完善和添加了些功能,终于做到自己满意了,发出来大家一起交流学习一下:(目前的功能有:根据文件数量添加序号、在文件名前面添加文本、删除文件名前面的方括号和修改文件后缀名,具体还是看代码和实际运行吧!)

# coding:utf-8
import os

path = input('请输入文件所在地址:')


# houz = input('指定文件类型(输入文件后缀名,仅限一个):')#如果要指定文件类型的话就去掉这行和这行字正下方的']#'号即可实现


def getpath(path): #获得文件地址序列
    return [f for f in os.listdir(path)]  # if f.endswith('.' + houz)]


def setdel(name):  # 删去文件名首括号内内容
    find = name.find(']')
    newn = name[find + 1:]  # 将文件名位置定位至']'后
    return newn


def houzm(name):
    name = os.path.splitext(name)  # 分割文件后缀名[0]为文件名,[1]为后缀
    return name


n = 0
print('请输入操作序号')
modes = int(input('1.文件名后添加序号 2.文件名前添加文字 3.删除文件名首括号 4.修改文件后缀名:'))
while (n == 0):    # 当输入序号错误可以通过这个循环重新输入
    if modes == 1:  # 文件名后添加序号,能自动根据文件数量进行整齐序号命名
        long = len(getpath(path))
        for name in getpath(path):
            if long < 9: number = str(n + 1)
            elif 9 <= long < 99:
                if n < 9: number = '0' + str(n + 1)
                else: number = str(n + 1)
            elif long < 1000:
                if n < 9: number = '00' + str(n + 1)
                elif 9 <= n < 99: number = '0' + str(n + 1)
                else: number = str(n + 1)
            elif long < 10000:
                if n < 9: number = '000' + str(n + 1)
                elif 9 <= n < 99: number = '00' + str(n + 1)
                elif 99 <= n < 999: number = '0' + str(n + 1)
                else: number = str(n + 1)
            else:
                print('超出长度,修改文件数不得超过10000')
                continue
            oldn = path + '\\' + name
            newn = path + '\\' + houzm(name)[0] + number + houzm(name)[1]
            os.rename(oldn, newn)
            n = n + 1
    elif modes == 2:    # 在文件名前添加输入的字符
        text = input('请输入文件名前需添加的文字:')
        for name in getpath(path):
            oldn = path + '\\' + name
            newn = path + '\\' + text + name
            os.rename(oldn, newn)
            n = n + 1
    elif modes == 3:    # 删除掉文件名首括号(会将文件名括号前的东西删掉)
        for name in getpath(path):
            oldn = path + '\\' + name
            newn = path + '\\' + setdel(name)
            os.rename(oldn, newn)
            n = n + 1
    elif modes == 4:    # 修改文件后缀名
        houz1 = input('请输入修改后后缀名:')
        for name in getpath(path):
            n = n + 1
            oldn = path + '\\' + name
            name1 = houzm(name)
            newn = path + '\\' + name1[0] + '.' + houz1
            os.rename(oldn, newn)

    else:
        modes = int(input('输入错误,请输入操作序号:'))
        continue
print('修改成功,共修改' + str(n) + '个文件')
使用软件:pycharm专业版
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值