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中的XML 工具
Apr 13 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
Django 全局的static和templates的使用详解
Jul 19 Python
pytorch中nn.Conv1d的用法详解
Dec 31 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
Python select及selectors模块概念用法详解
Jun 22 Python
python 利用opencv实现图像网络传输
Nov 12 Python
教你如何使用Python Tkinter库制作记事本
Jun 10 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传输数据的代码
2007/11/13 PHP
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
php的array_multisort()使用方法介绍
2012/05/16 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
jQuery 前的按键判断代码
2010/03/19 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
python类继承用法实例分析
2015/05/27 Python
Python实现快速多线程ping的方法
2015/07/15 Python
Python 中的with关键字使用详解
2016/09/11 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
旺仔牛奶广告词
2014/03/20 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
丽江古城导游词
2015/02/03 职场文书
婚宴父亲致辞
2015/07/27 职场文书
Java基础——Map集合
2022/04/01 Java/Android
使用Ajax实现进度条的绘制
2022/04/07 Javascript
Nginx 常用配置
2022/05/15 Servers