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调用C/C++动态链接库的方法详解
Jul 22 Python
python基于右递归解决八皇后问题的方法
May 25 Python
Python 制作糗事百科爬虫实例
Sep 22 Python
Python json 错误xx is not JSON serializable解决办法
Mar 15 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
详解python中__name__的意义以及作用
Aug 07 Python
python+selenium select下拉选择框定位处理方法
Aug 24 Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
python统计字符的个数代码实例
Feb 07 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
Feb 20 Python
Python计算指定日期是今年的第几天(三种方法)
Mar 26 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
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
python批量赋值操作实例
2018/10/22 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
python中entry用法讲解
2020/12/04 Python
药剂专业自荐书
2014/06/20 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
Python合并多张图片成PDF
2021/06/09 Python
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL