有好几位网友私下里问我如何学习平面设计?我告诉他们:如果只想自学的话,可以先到“哔哩哔哩”网站(俗称 B 站)找视频教程看看。要是觉得哪个教程不错,还可以下载到电脑或手机上随时随地观看。
下载 B 站视频最好的电脑软件是 JiJiDown(如下图所示,我在《怎样在 Windows 电脑上下载 bilibili (B站)的视频?》一文中曾经介绍过它):
不过,JiJiDown 下载的视频文件名并不完美,比如下面这些:前面的序号位数不统一,影响文件排序;
后面的“(Av49811873,P1)”等字符串影响美观。
那怎么改变呢?以前,我都是用 Total Commander的“批量重命名”功能进行反复操作才能达到目的:
但最近开始自学 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 中测试通过,运行结果如下:
今后再遇到同样的问题,只要稍微改一下,代码依然可以使用,比借助其它第三方软件的效率都要高。
此外,在使用 InDesign 进行排版的过程中,往往也要处理一些复杂的文本,只使用它自带的功能常常不能满足需要。因此,学习和使用 Python 编写代码,对提高排版效率也是大有帮助,希望有此需求的朋友也学学。
相比其它编程语言,Python 上手容易,功能强大,对没有编程基础的普通人来说,还是不难掌握的。如果大家喜欢,今后我将不定期分享一些自己用它处理排版所需文本的代码。敬请期待!