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


Posted in Python onSeptember 10, 2017

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

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

1.批量添加前缀功能

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

批量重命名

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

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

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

python实现批量修改文件名代码
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行程序,只能批量增加前缀,不能批量移除,不太完善,这是增加了移除前缀功能的源码

python实现批量修改文件名代码
添加/移除

上图源码:

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呢?

Python 相关文章推荐
python列表的常用操作方法小结
May 21 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
使用Tensorboard工具查看Loss损失率
Feb 15 Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
Pytorch转onnx、torchscript方式
May 25 Python
Python 微信公众号文章爬取的示例代码
Nov 30 Python
python自动化发送邮件实例讲解
Jan 04 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
Feb 22 Python
python中利用队列asyncio.Queue进行通讯详解
Sep 10 #Python
Python上下文管理器和with块详解
Sep 09 #Python
Python使用asyncio包处理并发详解
Sep 09 #Python
Python协程的用法和例子详解
Sep 09 #Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 #Python
Python使用回溯法子集树模板解决爬楼梯问题示例
Sep 08 #Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 #Python
You might like
php+mysql查询优化简单实例
2015/01/13 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
jQuery实现360°全景拖动展示
2015/03/18 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
React diff算法的实现示例
2018/04/20 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
横向对比分析Python解析XML的四种方式
2016/03/30 Python
python http接口自动化脚本详解
2018/01/02 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
python enumerate内置函数用法总结
2020/01/07 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
django 实现简单的插入视频
2020/04/07 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
初二学习计划书范文
2014/04/27 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
酒桌上的开场白
2015/06/01 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL