使用python批量重命名b站视频

 文件目录是这样的

里面是这样的

很明显不适合我们学习 而且并不是我们想要的

所以

***

这是我们的目标

实现步骤

一、确定文件名和序号

        打开.info文件

经过分析 知道是json格式的文件

再解析一次 发现有我们想要的序号和名字了 PartNo和PartName

二、代码和具体功能的实现

~~~python

import os
import json
import shutil
from time import sleep
#root_path = r"D:\影视专区\58871"
root_path = r"D:\影视专区\588716614"
#文件路径 加r是把里面当作普通字符串看待 不会有\t这种
list_dir = os.listdir(root_path) #获取该目录下的所有文件夹 返回一个列表
#虽然顺序不一样 但是第一个是ider 长度为654
del list_dir[0] #删除第一个 因为第一个是ider
#把每个路径设置为绝对路径
paths = [] #绝对路径
for i in list_dir:
    paths.append(os.path.join(root_path,i))
#遍历每个绝对路径
print(paths)
a = 0 #打印出完成的序号
copy_path = r'D:\影视专区\按顺序复制好的文件'
for path in paths:
    #遍历绝对路径的文件
    for file_name in os.listdir(path):
        if (file_name.endswith(".info")):
            #如果是.info文件 那么就打开
            with open(os.path.join(path,file_name), 'r', encoding='UTF-8') as todos:
                str_text = todos.read() #打开文件 并且保存到str里
            #读取json文件
            str_dict = json.loads(str_text)
            #新文件名
            new_name = str_dict["PartName"]
            #该视频的序列号
            index = str_dict["PartNo"]
            #把序列号变成三位数
            if (int(index) < 10):
                index = '00' + index
            elif (int(index) < 100):
                index = '0' + index
            new_name = index + '-' + new_name + '.mp4' #index和name拼接
            #修改为绝对路径
            new_copy_path = os.path.join(copy_path, new_name) #路径加上.mp4文件的名字
            new_name = os.path.join(path, new_name)
        elif (file_name.endswith(".mp4")):
            #如果不是.info文件 那么再判断一下是否为.mp4文件
            old_name = file_name #如果是.mp4文件 那么保存文件名
            old_name = os.path.join(path, old_name)#修改为绝对路径
    os.rename(old_name, new_name) #改名字
    #改完名字后移动到新的位置
    shutil.copyfile(new_name, new_copy_path)
    a = a + 1
    print(str(a) + "完成")
    sleep(1)#休息一秒钟
print("全部完成!!!")

~~~

完成!!!


版权声明:本文为qq_52665004原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。