PHP前端开发

python文件名的批量修改

百变鹏仔 3小时前 #Python
文章标签 文件名

本文给大家分享的是一段仅仅10行代码就实现了批量修改文件名的python脚本,推荐给大家,有需要的小伙伴可以参考下

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

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

1.批量添加前缀功能


立即学习“Python免费学习笔记(深入)”;

批量重命名

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

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

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


10行代码

上图源码:


# 导入python内置的os模块和sys模块import osimport 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 osimport reimport sysdef 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:      passdef main():  while True:    option = int(input("请选择功能数值:1.添加前缀2.删除前缀3.退出程序"))    if option == 1:      add_mark()    elif option == 2:      remove_mark()    else:      exit()if __name__ == "__main__":  main(