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 translator使用实例
Sep 06 Python
使用PYTHON接收多播数据的代码
Mar 01 Python
python实现图片批量剪切示例
Mar 25 Python
Python类的专用方法实例分析
Jan 09 Python
Python中的自省(反射)详解
Jun 02 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
详解Python中的四种队列
May 21 Python
python3之模块psutil系统性能信息使用
May 30 Python
Django--权限Permissions的例子
Aug 28 Python
pycharm 2018 激活码及破解补丁激活方式
Sep 21 Python
如何利用pycharm进行代码更新比较
Nov 04 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&java(一)
2006/10/09 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
javascript鼠标滑过显示二级菜单特效
2020/11/18 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
python写入xml文件的方法
2015/05/08 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
如何用python批量调整视频声音
2020/12/22 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
高中生物教学反思
2014/02/05 职场文书
喝酒检查书范文
2014/02/23 职场文书
村级换届选举方案
2014/05/10 职场文书
出国留学担保书
2014/05/20 职场文书
英语教师自荐信
2014/05/26 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
阿甘正传观后感
2015/06/01 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL