概述

运行python脚本时通过命令行方式传入运行参数通常有以下两种自建方式:

  • sys.argv - 简洁
  • argparse - 丰富,可自定义

下面详细说一下具体时使用

argv

# test_argv.py

import sys

args = sys.argv
print(f'args = {args}')

> output
"_blank" href="https://docs.python.org/zh-cn/dev/library/argparse.html" rel="external nofollow" >argparse

实例

test_argv.py

import argparse

# 初始化一个parser对象
parser = argparse.ArgumentParser(description='test module of argparse')

# 指定-n/--number的参数
# 类型为int
# help为简短地说明
parser.add_argument(
  '-n', '--number', type=int,
  help='args of number'
)

# 指定-o/--output参数
# 并限制类型为:['txt', 'csv', 'doc']
parser.add_argument(
  '-o', '--output', type=str,
  choices=['txt', 'csv', 'doc'],
  help='output method'
)

# 指定-d/--default参数
# 并限制类型为:['txt', 'csv', 'doc']
parser.add_argument(
  '-d', '--default', type=int,
  choices=[_ for _ in range(1, 10)],
  default=5,
  help='default'
)

# 指定位置参数foo
parser.add_argument('foo')

args = parser.parse_args()
print(f'args = {args}')

# 获取指定参数
print(
  f'number = {args.number}, type = {type(args.number)}\n'
  f'output = {args.output}, type = {type(args.output)}\n'
  f'default = {args.default}, type = {type(args.default)}\n'
  f'foo = {args.foo}, type = {type(args.foo)}'
)

output

# -h - 打印help
➜ git:(master) ✗ python3 test_argv.py -h
usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]
          [-d {1,2,3,4,5,6,7,8,9}]
          foo

test module of argparse

positional arguments:
 foo

optional arguments:
 -h, --help      show this help message and exit
 -n NUMBER, --number NUMBER
            args of number
 -o {txt,csv,doc}, --output {txt,csv,doc}
            output method
 -d {1,2,3,4,5,6,7,8,9}, --default {1,2,3,4,5,6,7,8,9}
            default
# 不带参数运行,结果为None
➜ git:(master) ✗ python3 test_argv.py  
args = Namespace(number=None, output=None)
number = None
output = None

# 带参数运行
➜ git:(master) ✗ python3 test_argv.py -n 33 --output txt
args = Namespace(number=33, output='txt')
number = 33, type = <class 'int'>
output = txt, type = <class 'str'>

# 参数格式错误
➜ git:(master) ✗ python3 test_argv.py -n str     
usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]
test_argv.py: error: argument -n/--number: invalid int value: 'str'
➜ git:(master) ✗ python3 test_argv.py -o excel    
usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]
test_argv.py: error: argument -o/--output: invalid choice: 'excel' (choose from 'txt', 'csv', 'doc')

# 默认参数 
➜ git:(master) ✗ python3 test_argv.py   
args = Namespace(default=5, number=None, output=None)
number = None, type = <class 'NoneType'>
output = None, type = <class 'NoneType'>
output = 5, type = <class 'int'>

以上就是Python命令行参数argv和argparse该如何使用的详细内容,更多关于Python命令行参数argv和argparse的资料请关注其它相关文章!

华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。