js实现oss批量下载文件_用 Python 给下载的 B 站视频文件批量改名

本文介绍了自学平面设计可在B站找视频教程,下载B站视频可用JiJiDown,但文件名存在问题。作者自学Python编程,用不多的代码实现了视频文件名批量重命名,效率高于第三方软件。此外,Python代码对InDesign排版处理复杂文本也有帮助,上手容易。

8bb4650330b4ec1ca3b61831e1934a78.png

有好几位网友私下里问我如何学习平面设计?我告诉他们:如果只想自学的话,可以先到“哔哩哔哩”网站(俗称 B 站)找视频教程看看。要是觉得哪个教程不错,还可以下载到电脑或手机上随时随地观看。

下载 B 站视频最好的电脑软件是 JiJiDown(如下图所示,我在《怎样在 Windows 电脑上下载 bilibili (B站)的视频?》一文中曾经介绍过它):

ce1abc7698c8951b8dc716a76dcb167b.png

不过,JiJiDown 下载的视频文件名并不完美,比如下面这些:

207ddfaacde1e0039d7e1e9270db9d40.png
  1. 前面的序号位数不统一,影响文件排序;
  2. 后面的“(Av49811873,P1)”等字符串影响美观。

那怎么改变呢?以前,我都是用 Total Commander 的“批量重命名”功能进行反复操作才能达到目的:

0f839c63a38835c728f306b00e0aebf7.png

但最近开始自学 Python 编程,用不多的代码(除掉注释行 #,最多不过 20 行)就能达到同样的效果:

'''
本程序的功能是:将形如 “ 1.Python基础1:版本、安装(Av49811873,P1).mp4 ”
的文件全部改名为形如 “ 001.Python基础1:版本、安装.mp4 ” 的样子。
'''

import os  # 导入所需模块

# 实现字符串:“1.Python基础1:版本、安装(Av49811873,P1).mp4”
#       到 “001.Python基础1:版本、安装.mp4” 的转换
def bili_rename(num_len, old_name, flag):
    
    # 将“1.Python基础1:版本、安装(Av49811873,P1).mp4” 拆解为:
    # ('1', '.', 'Python基础1:版本、安装(Av49811873,P1).mp4')
    li = old_name.partition('.')

    # 将“1”转换为“001”
    s1 = li[0].zfill(num_len)

    # 去掉“Python基础1:版本、安装(Av49811873,P1).mp4”中的
    # “(Av49811873,P1)”
    s2 = li[2][0:li[2].index(flag)]

    # 获取“Python基础1:版本、安装(Av49811873,P1).mp4”中的
    # “.mp4”
    s3 = li[2][li[2].rindex('.'):len(li[2])]

    # 返回“001.Python基础1:版本、安装.mp4”
    return f'{s1}.{s2}{s3}'

# 要全部改名的文件所在的文件夹
my_files = 'C:/最新Python系列教程/'

try:
    # 获取要改名的所有文件的列表
    bili_files = os.listdir(my_files) 

    # 遍历所有文件,进行改名操作
    for i in range(len(bili_files)):

        # 原文件名
        b1 = my_files + bili_files[i]

        # 新文件名
        b2 = my_files + bili_rename(3, bili_files[i], '(Av')

        # 调用所导入模块中的改名函数,完成具体改名操作
        os.rename(b1, b2)
    
    # 完成后提示用户
    print('文件改名完成!')
except FileNotFoundError:
    # 若找不到要改名的文件,报错
    print('找不到指定的文件!')

以上代码在 Windows 10(64 位)系统和 Python 3.7.3 中测试通过,运行结果如下:

9bd173f7a5512f3441bbca188196b2e7.png

今后再遇到同样的问题,只要稍微改一下,代码依然可以使用,比借助其它第三方软件的效率都要高。

此外,在使用 InDesign 进行排版的过程中,往往也要处理一些复杂的文本,只使用它自带的功能常常不能满足需要。因此,学习和使用 Python 编写代码,对提高排版效率也是大有帮助,希望有此需求的朋友也学学。

相比其它编程语言,Python 上手容易,功能强大,对没有编程基础的普通人来说,还是不难掌握的。如果大家喜欢,今后我将不定期分享一些自己用它处理排版所需文本的代码。敬请期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值