您的位置:首页 > 编程语言 > Python开发

python实现批量修改文件名代码

2017-09-10 09:18 741 查看

我曾以为,写脚本是很难的,直到我遇到了Python

前言随着国内版权意识的跟进,很多影视音乐资源开始收费,而且度盘又经常随意封杀各种资源,所以,为了保护资源,老司机们越来越倾向于把资源下载到本地,但随着本地资源量的增多,资源管理就成了一件比较头疼的事情;对于资源的管理,方法有很多,我比较喜欢为资源起一个好记的名字,但改文件名是一件无聊又耗时的事情,所以,一个批量重命名的脚本就变得非常重要.

1.批量添加前缀功能


批量重命名

批量重命名逻辑,分三步:

(1)确定需要命名的文件们
(2)确定新的文件名
(3)改名

逻辑理清,编码就变得很简单了


10行代码

上图源码:

# 导入python内置的os模块和sys模块
import os
import sys
# 程序入口
if __name__ == "__main__":
# 获取需要添加的前缀
pre = input("请输入需要添加的前缀:")
# 为了美观,为前缀添加一个中括号
mark = "[%s]"%pre
# 获取本目录下所有的文件名
old_names = os.listdir()
# 遍历目录下的文件名
for old_name in old_names:
# 跳过本脚本文件
if old_name != sys.argv[0]:
# 用新的文件名替换旧的文件名
os.rename(old_name, mark+old_name)

2.(扩展)添加移除前缀功能:

上面的10行程序,只能批量增加前缀,不能批量移除,不太完善,这是增加了移除前缀功能的源码


添加/移除

上图源码:

import os
import re
import sys
def add_mark():
pre = input("请输入需要添加的前缀:")
mark = "[%s]"%pre
old_names= os.listdir()
for old_name in old_names:
if old_name != sys.argv[0]:
os.rename(old_name, mark+old_name)
def remove_mark():
old_names= os.listdir()
for old_name in old_names:
try:
result = re.match(r"(^\[.*\])(.*)", old_name).group(2)
rm = old_name
if result:
os.rename(old_name, result)
print("已为%s移除前缀"%rm)
except Exception as e:
pass
def main():
while True:
option = int(input("请选择功能数值:\n1.添加前缀\n2.删除前缀\n3.退出程序\n"))
if option == 1:
add_mark()
elif option == 2:
remove_mark()
else:
exit()
if __name__ == "__main__":
main(

后记:

python是一门简洁强大的语言,随着人工智能的兴起,python也会变得越来越受人们的重视,你有什么理由不爱上python呢?

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息