#author("2023-09-27T09:21:43+08:00","default:Admin","Admin")
#author("2023-09-27T09:23:46+08:00","default:Admin","Admin")
[[Python]]

&color(red){※This article is based on Python 3.7.3};

#contents

* 概要 [#f7ba0a6c]

argparse模块可以让我们轻松编写用户友好的命令行接口。它程序定义需要哪些参数,然后 argparse 将找出如何从 sys.argv 解析出这些参数。argparse模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。

例程

#codeprettify{{
import sys
import argparse
 
# print(sys.argv)
 
# 1.先创建解释器
parser=argparse.ArgumentParser(description="解析命令行")
 
# 2.添加参数
parser.add_argument("--a",type=int,default=5,help="操作数 A")
parser.add_argument("--b",type=int,default=6,help="操作数 B")
parser.add_argument("method",type=str,help="方法")
parser.add_argument("--verbose",action="store_true",help="Print Message")
 
# 3.解析命令行
args = parser.parse_args()
 
print(args)
print(args.a,type(args.b))
}}

* 使用 [#a70c4219]

#codeprettify{{
parser = argparse.ArgumentParser()
parser.add_argument("-usb", help="USB index")
args = parser.parse_args()

#判断是否传参
if args.usb != None:
    #注意参数为字符串,并且里面可能混有空格
    usb= int(trim(args.usb))
    print("Use Index:" , str(usb) + ".")
}}

* 参数冲突解析 [#na6dce29]

有时候,我们的程序可能有一些参数是互斥的,也就是说不能同时出现。argparse 提供了 add_mutually_exclusive_group() 方法来创建一个互斥参数组,然后在这个组上添加的参数将是互斥的:

#codeprettify{{
import argparse

parser = argparse.ArgumentParser()

group = parser.add_mutually_exclusive_group()

group.add_argument('--foo', action='store_true')
group.add_argument('--bar', action='store_true')

args = parser.parse_args()
}}

在这个例子中,我们创建了一个互斥参数组,并在这个组上添加了两个参数 --foo 和 --bar,这两个参数是互斥的,也就是说不能同时出现。

#hr();
コメント:
#comment_kcaptcha

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS