#!/bin/usr/env python3

__author__ = 'nxz'

import os
import argparse def batch_rename(work_dir, old_ext, new_ext):
"""
批量将指定文件夹下的后缀名修改为新的后缀名
"""
for filename in os.listdir(work_dir):
# 获取文件名后缀
split_file = os.path.splitext(filename)
file_ext = split_file[1]
# 当后缀和给出的old_ext相同时,修改文件名
if old_ext == file_ext:
# return changed name of the file with new extension
newfile = split_file[0] + new_ext
# write the files
os.rename(os.path.join(work_dir, filename), os.path.join(work_dir, newfile)) def get_parse():
parser = argparse.ArgumentParser(description="批量修改指定文件夹下的文件后缀")
parser.add_argument("work_dir", metavar="WORK_DIR", type=str, nargs=1,
help="要修改后缀的文件夹路径")
parser.add_argument("old_ext", metavar="OLD_EXT", type=str, nargs=1, help="旧后缀")
parser.add_argument("new_ext", metavar="NEW_EXT", type=str, nargs=1, help="新后缀")
return parser def main():
parser = get_parse()
args = vars(parser.parse_args())
print(args)
work_dir = args['work_dir'][0]
old_ext = args['old_ext'][0]
new_ext = args['new_ext'][0]
  #使用了python中的切片 例如: a[0:2]
if (old_ext[0] != '.'):
old_ext = '.' + old_ext
if (new_ext[0] != '.'):
new_ext = '.' + new_ext batch_rename(work_dir, old_ext, new_ext) if __name__ == '__main__':
main()

使用:python batch_file_rename.py --help

python-argparse批量修改后缀名-batch_file_rename.py的更多相关文章

  1. Linux下批量修改后缀名

    1.用find和xargs添加后缀名 [root@node99 yum.repos.d]# ls -ltr total 32 -rw-r--r--. 1 root root 5701 Nov 23 2 ...

  2. Idea批量修改变量名

    Idea批量修改变量名.在变量名上进行rename操作,所有的同名变量都会自动更改. 快捷键:ALT+SHIFT+R

  3. IDEA批量修改变量名操作

    批量修改变量名操作:shift+F6选中变量---->修改变量---->Enter回车

  4. Ansible基于playbook批量修改主机名实战

    Ansible基于playbook批量修改主机名 安装Ansible,相信这里也不用多说,大家都知道 说一下环境:这里的主机名是修改之后的,我先把其他两台的主机名改为别的 192.168.30.21 ...

  5. 【shell脚本】批量修改扩展名===modifyExtension.sh

    前提:需切换到需要批量修改扩展名的目录下,运行脚本 [root@VM_0_10_centos shellScript]# cat modifyExtension.sh #!/bin/bash # 编写 ...

  6. Linux 递归修改后缀名

    1 修改命令 需要用到: find awk xargs 递归修改命令如下: find . -name '*.XXX' | awk -F "." '{print $2}' | xar ...

  7. Python脚本批量修改服务器密码

    搭建环境 centos 7.4 使用脚本 python 批量修改connect用户的密码 生成密码为随机密码 保存为xls文档   passwd_chang #!/usr/bin/env python ...

  8. SQL批量修改表名

    SELECT NAME FROM SYS. ALL_OBJECTS WHERE TYPE= 'U' ORDER BY MODIFY_DATE DESC --查询所有表名 SELECT NAME FRO ...

  9. Xcode里修改工程名、类名、批量修改变量名

    转:http://blog.csdn.net/yuedong56/article/details/13767001 一.修改工程名: 1.点击工程,右键,选择如图选项. 2.右侧如图位置,修改工程名. ...

随机推荐

  1. mysql查看存储过程函数

    查询数据库中的存储过程和函数 select `name` from mysql.proc where db = 'xx' and `type` = 'PROCEDURE'   //存储过程       ...

  2. Siamese network 孪生神经网络

    Siamese network 孪生神经网络 https://zhuanlan.zhihu.com/p/35040994 https://blog.csdn.net/shenziheng1/artic ...

  3. Django之缓存、信号和图片验证码

    一. 缓存 1. 介绍 缓存通俗来说:就是把数据先保存在某个地方,下次再读取的时候不用再去原位置读取,让访问速度更快. 缓存机制图解 2.Django中提供了6种缓存方式 1. 开发调试 2. 内存 ...

  4. Android : Resource is not a Drawable (color or path)

    错误1:android.content.res.Resources$NotFoundException 错误2:Resource is not a Drawable (color or path) 解 ...

  5. python实现简单的百度云自动下载

    最近女同让我帮助从百度云下载200个文件,给了我连接和提取码,这种重复的工作不适合人做写了一个简单的爬虫 #coding=utf-8 ''' 自动填写提取码下载百度云资源 方法: for 读取文件中的 ...

  6. Qt: 非阻塞时间延迟;

    1.使用时间耗损循环: #include <QTime> ... QTime delayTime = QTime::currentTime().addMSecs(1000); while( ...

  7. CMDB服务器管理系统【s5day87】:需求讨论-设计思路

    自动化运维平台愿景和服务器管理系统背景 服务器管理系统 管理后台示例 需求和设计 为什么开发服务器管理系统? 背景: 原来是用Excel维护服务器资产,samb服务[多个运维人员手动维护] 搭建运维自 ...

  8. Node.js实战项目学习系列(5) node基础模块 path

    前言 前面已经学习了很多跟Node相关的知识,譬如开发环境.CommonJs,那么从现在开始要正式学习node的基本模块了,开始node编程之旅了. path path 模块提供用于处理文件路径和目录 ...

  9. [物理学与PDEs]第2章习题13 将 $p$ - 方程组化为守恒律形式的一阶拟线性对称双曲组

    试引进新的未知函数, 将 $p$ - 方程组 $$\beex \bea \cfrac{\p \tau}{\p t}-\cfrac{\p u}{\p x}&=0,\\ \cfrac{\p u}{ ...

  10. ES6 的 一些语法

    1,let 声明变量 let 声明的变量只能在let 的块级作用域中生效,也是为了弥补var声明变量的全局污染问题. var 声明变量有变量提升的作用,也就是在声明变量之前可以使用变量 console ...