首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python初学者必知必会:命令行参数处理利器argparse!

Python初学者必知必会:命令行参数处理利器argparse!

大家好,我是猫哥。今天要和大家分享一个在Python编程中特别实用的知识点:如何优雅地处理命令行参数。想必大家都用过命令行工具吧?比如pip安装包时的pip install package_name,这里的package_name就是一个命令行参数。今天我们就来学习如何用Python的argparse模块来处理这些参数!

为什么要学习命令行参数处理? 

想象一下,如果你写了一个图片处理程序,每次运行都要在代码里修改文件路径,多麻烦啊!如果能像这样运行就好了:

python resize_image.py input.jpg --width 800 --height 600

有了argparse,这就变得超级简单!

快速入门 

先来看个最简单的例子:

import argparse

# 创建参数解析器

parser = argparse.ArgumentParser(description='一个简单的命令行工具')

# 添加参数

parser.add_argument('name', help='输入你的名字')

parser.add_argument('--age', type=int, help='输入你的年龄')

# 解析参数

args = parser.parse_args()

# 使用参数

print(f'你好,{args.name}!')

if args.age:

  print(f'你今年{args.age}岁')

运行方式:

python hello.py 小明 --age 18

输出结果:

你好,小明!

你今年18岁

参数类型详解 

argparse支持多种参数类型,来看看:

import argparse

parser = argparse.ArgumentParser(description='参数类型示例')

# 位置参数(必填)

parser.add_argument('input_file', help='输入文件路径')

# 可选参数

parser.add_argument('--output', '-o', help='输出文件路径')

# 数字参数

parser.add_argument('--num', type=int, default=10, help='数字参数')

# 布尔标志

parser.add_argument('--verbose', action='store_true', help='是否显示详细信息')

# 选择参数

parser.add_argument('--mode', choices=['fast', 'normal', 'slow'], default='normal',

                  help='运行模式:fast/normal/slow')

args = parser.parse_args()

print(args)

小贴士:使用-h或--help可以查看参数说明:

python script.py -h

实战案例:图片处理工具 

来写一个实用的图片处理工具:

import argparse

from PIL import Image

def process_image(input_path, output_path, width, height, mode):

  """处理图片的主函数"""

  try:

      # 打开图片

      img = Image.open(input_path)

      # 调整大小

      if width and height:

          img = img.resize((width, height))

      # 处理模式

      if mode == 'gray':

          img = img.convert('L')

      elif mode == 'sepia':

          # 复古效果

          img = img.convert('RGB')

          width, height = img.size

          pixels = img.load()

          for x in range(width):

              for y in range(height):

                  r, g, b = pixels[x, y]

                  tr = int(0.393*r + 0.769*g + 0.189*b)

                  tg = int(0.349*r + 0.686*g + 0.168*b)

                  tb = int(0.272*r + 0.534*g + 0.131*b)

                  pixels[x, y] = (min(tr,255), min(tg,255), min(tb,255))

      # 保存图片

      img.save(output_path)

      print(f"图片处理完成!已保存至: {output_path}")

  except Exception as e:

      print(f"处理图片时出错: {str(e)}")

def main():

  parser = argparse.ArgumentParser(description='图片处理工具')

  # 添加参数

  parser.add_argument('input', help='输入图片路径')

  parser.add_argument('--output', '-o', help='输出图片路径')

  parser.add_argument('--width', type=int, help='输出图片宽度')

  parser.add_argument('--height', type=int, help='输出图片高度')

  parser.add_argument('--mode', choices=['normal', 'gray', 'sepia'],

                      default='normal', help='处理模式')

  args = parser.parse_args()

  # 如果没有指定输出路径,自动生成

  ifnot args.output:

      args.output = f'processed_{args.input}'

  # 处理图片

  process_image(args.input, args.output, args.width, args.height, args.mode)

if __name__ == '__main__':

  main()

使用技巧和注意事项 

参数命名要清晰明确

记得添加help说明

合理使用默认值

参数分组可以让帮助信息更清晰

例如,给参数分组:

parser = argparse.ArgumentParser()

# 创建参数组

input_group = parser.add_argument_group('输入选项')

output_group = parser.add_argument_group('输出选项')

# 添加参数到不同组

input_group.add_argument('--input', '-i')

output_group.add_argument('--output', '-o')

练习题 

编写一个文件重命名工具,支持批量重命名文件

创建一个计算器工具,支持基本的数学运算

实现一个文本处理工具,能够统计字数、行数等信息

今日要点总结 

argparse是Python标准库中处理命令行参数的利器

支持位置参数和可选参数

可以设置参数类型、默认值和帮助信息

支持参数分组,可以让帮助信息更清晰

适合开发命令行工具和脚本

小伙伴们,今天的Python学习之旅就到这里啦!记得动手敲代码,有问题随时在评论区问猫哥哦。祝大家学习愉快,Python学习节节高!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OoKagHv0mi7BEAHFS-yqutGw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券