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中由于logging模块误用导致的内存泄露
Apr 23 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
Python导入模块时遇到的错误分析
Aug 30 Python
pandas apply 函数 实现多进程的示例讲解
Apr 20 Python
Django 使用logging打印日志的实例
Apr 28 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
Aug 07 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
Python PyCharm如何进行断点调试
Jul 05 Python
python3多线程知识点总结
Sep 26 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
Python操作word文档插入图片和表格的实例演示
Oct 25 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中将汉字转换成拼音的函数代码
2012/09/08 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
详解Python中的type()方法的使用
2015/05/21 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
材料成型专业个人求职信范文
2013/09/25 职场文书
实习心得体会
2014/01/02 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
2015年酒店客房部工作总结
2015/04/25 职场文书
民事调解书范文
2015/05/20 职场文书
龙猫观后感
2015/06/09 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers
CSS 伪元素::marker详解
2021/06/26 HTML / CSS