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中文问题解决方法(总结了多位前人经验,初学者必看)
Mar 13 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 Python
Python实现图片转字符画的示例代码
Aug 21 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
python矩阵转换为一维数组的实例
Jun 05 Python
PyCharm代码提示忽略大小写设置方法
Oct 28 Python
Python玩转Excel的读写改实例
Feb 22 Python
Django REST framework 视图和路由详解
Jul 19 Python
Python测试线程应用程序过程解析
Dec 31 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
Mar 31 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
python_tkinter弹出对话框创建
Mar 20 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
BBS(php & mysql)完整版(六)
2006/10/09 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
PHP常用的小程序代码段
2015/11/14 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
django文档学习之applications使用详解
2018/01/29 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
先进个人事迹材料
2014/01/25 职场文书
货车司机岗位职责
2014/03/18 职场文书
母校寄语大全
2014/04/10 职场文书
工业设计毕业生自荐信
2014/04/13 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
人代会标语
2014/06/30 职场文书
员工保密协议书
2014/09/27 职场文书
会计求职信怎么写
2015/03/20 职场文书
2015年组织部工作总结
2015/04/03 职场文书