V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fanqieipnet
V2EX  ›  推广

如何使用 argparse 模块批量修改文件后缀

  •  
  •   fanqieipnet · 2021-01-05 17:43:34 +08:00 · 593 次点击
    这是一个创建于 1424 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如何使用 argparse 模块批量修改文件后缀?今天番茄加速就来分享 argparse 模块的主要用法。

      导入模块

       import argparse

       import os

      定义脚本参数

       def get_parser():

       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 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:

      # 修改后文件的完整名称

       newfile = split_file[0] + new_ext

      # 实现重命名操作

       os.rename(

       os.path.join(work_dir, filename),

       os.path.join(work_dir, newfile)

      )

       print("完成重命名")

       print(os.listdir(work_dir))

      实现 Main

       def main():

      """

       main 函数

      """

      # 命令行参数

       parser = get_parser()

       args = vars(parser.parse_args())

      # 从命令行参数中依次解析出参数

       work_dir = args['work_dir'][0]

       old_ext = args['old_ext'][0]

       if old_ext[0] != '.':

       old_ext = '.' + old_ext

       new_ext = args['new_ext'][0]

       if new_ext[0] != '.':

       new_ext = '.' + new_ext

       batch_rename(work_dir, old_ext, new_ext)
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2805 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 07:50 · PVG 15:50 · LAX 23:50 · JFK 02:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.