TECH

Python | argparse

2022-07-03  本文已影响0人  shwzhao

参考:
博客园 | Python解析命令行读取参数 -- argparse模块
公众号 | 生信菜鸟团 | python:argparse用于命令行参数解析
公众号 | Python 命令行之旅 —— 深入 argparse (一)
公众号 | Python 命令行之旅 —— 深入 argparse (二)
公众号 | Python 基础(二十一):argparse 模块
argparse — 解析命令参数和选项

简单学习了一下,够自己用就行了。

$ cat test.py
#!python3

import argparse

def create_parser():
    parser = argparse.ArgumentParser()
    parser.add_argument("-v", "--version", action="version", version="0.0.1")
    parser.add_argument("-i", "--infile") # 以 - 开头,如果不以 - 开头,视为位置参数
    parser.add_argument("-o", "--outfile", default="outfile")

    sub_parser = parser.add_subparsers()
    sub_seq = sub_parser.add_parser("seq") # 设置子命令 seq
    sub_seq.add_argument("-w", "--width", type=int)

    sub_grep = sub_parser.add_parser("grep") # 设置子命令 grep
    sub_grep.add_argument("-f", "--file", nargs="*")

    return parser

if __name__ == "__main__":
    parser = create_parser()
    args = parser.parse_args()
    print(vars(args))
    print(args.infile)
$ python3 test.py -v
0.0.1
$ python3 test.py -i test_file
{'infile': 'test_file', 'outfile': 'outfile'}
test_file
$ python3 test.py -h
usage: test.py [-h] [-v] [-i INFILE] [-o OUTFILE] {seq,grep} ...

positional arguments:
  {seq,grep}

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -i INFILE, --infile INFILE
  -o OUTFILE, --outfile OUTFILE
$ python3 test.py grep -h
usage: test.py grep [-h] [-f [FILE [FILE ...]]]

optional arguments:
  -h, --help            show this help message and exit
  -f [FILE [FILE ...]], --file [FILE [FILE ...]]
  1. parser = argparse.ArgumentParser(): 添加描述信息,可为空
  1. sub_parser = parser.add_subparsers(): 添加子命令
    sub_seq = sub_parser.add_parser("seq")
  1. parser.add_argument(): 添加选项
  1. parser.parse_args(): 解析

  2. parser.print_help(): 打印描述信息

还有很多,比如选项冲突......

上一篇下一篇

猜你喜欢

热点阅读