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下载Bing图片(代码)
Nov 07 Python
从零学Python之入门(三)序列
May 25 Python
Python简单实现Base64编码和解码的方法
Apr 29 Python
Python输出带颜色的字符串实例
Oct 10 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
python自动化生成IOS的图标
Nov 13 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
python批量修改xml属性的实现方式
Mar 05 Python
python删除某个目录文件夹的方法
May 26 Python
Python函数的迭代器与生成器的示例代码
Jun 18 Python
解决pip安装的第三方包在PyCharm无法导入的问题
Oct 15 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中session_unset与session_destroy的区别分析
2011/06/16 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
PHP经典面试题集锦
2015/03/19 PHP
使用PHP编写发红包程序
2015/07/22 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
电大本科自我鉴定
2014/02/05 职场文书
市场开发计划书
2014/05/07 职场文书
工作证明格式及范本
2014/09/12 职场文书
2014年双拥工作总结
2014/11/21 职场文书
医生辞职信范文
2015/03/02 职场文书
海上钢琴师观后感
2015/06/03 职场文书
初中数学教学随笔
2015/08/15 职场文书