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

2021-01-05 17:43:34 +08:00
 fanqieipnet
如何使用 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)
574 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/741954

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX