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基于twisted实现简单的web服务器
Sep 29 Python
centos 下面安装python2.7 +pip +mysqld
Nov 18 Python
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
浅析python协程相关概念
Jan 20 Python
python实现简单淘宝秒杀功能
May 03 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
tensorflow更改变量的值实例
Jul 30 Python
python实现windows壁纸定期更换功能
Jan 21 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
Python -m参数原理及使用方法解析
Aug 21 Python
Python基于Faker假数据构造库
Nov 30 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/03/08 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
微信公众平台实现获取用户OpenID的方法
2015/04/15 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
$.each与$().each的区别示例介绍
2014/03/20 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
Python 爬虫的原理
2020/07/30 Python
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
老海军美国官网:Old Navy
2016/09/05 全球购物
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
交通事故协议书范文
2014/04/16 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
高考学习决心书
2015/02/04 职场文书
离婚起诉状范本
2015/05/19 职场文书
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技