Zhong__python执行脚本参数加载及处理

时间:2021.02.22

环境:Python3.9

目的:

说明:

作者:Zhong QQ交流群:121160124 欢迎加入!

 

方法一:使用argparse.ArgumentParser()接收参数

import argparse

def valid_age(age):
    if 0 < int(age) <= 200:
        return int(age)
    else:
        raise ValueError

parser = argparse.ArgumentParser(description='接收参数')
parser.add_argument('-n', '--name', help='姓名(必选)')
parser.add_argument('-s', '--sex', dest="gender", help='性别')
# parser.add_argument('-a', '--age', choices=[i for i in range(0, 201)], help='年龄(可选) 范围0-200', type=int)
# 使用自定义的方法valid_age()验证参数选项
parser.add_argument('-a', '--age', help='年龄(可选) 范围0-200', type=valid_age)
parser.add_argument('-ip', help='IP', type=str, nargs='+')  # nargs='+'意为可传递一个或多个ip参数 以空格分开 例如:127.0.0.1 192.168.1.2  nargs='*'意为0个或多个参数
parser.add_argument('-f', '--file', help='IP地址文件路径', default="./hosts.txt")

args = parser.parse_args()
print(args)
name = args.name # 获取-n指定的参数
gender = args.gender  # 获取-s指定的参数
host_file = args.file # 获取主机地址文件的路径

print(name, type(name))
print(gender, type(gender))

with open(file=host_file, mode='r') as f:
    host_text = f.read()

print(host_text)

 

方法二:使用sys接收参数

import argparse
import sys

parser = argparse.ArgumentParser(description='接收参数')
parser.add_argument('-n', help='姓名')
parser.add_argument('-a', help='年龄')

args1 = sys.argv[0]
name = sys.argv[1]
age = sys.argv[2]
print(args1, type(args1))
print(name, type(name))
print(age, type(age))

 

总结:

使用argparse.ArgumentParser()接收参数

  • 输入-h 查看帮助信息
  • 接收参数默认将被视为str类型 可使用type指定参数类型 
  • 参数选项应对应 未传递的参数值将为None 类型为NoneType
  • 可选参数传递位置可改变
  • parser.add_argument('-n') 参数-n表示可选(可不传递此参数) n表示必选(必须传递此参数) 如果定义了如 --name 那么只能为-开始的标识如-n 必选参数也可以使用required=True指定 如parser.add_argument('-n', '--name', required=True, help='姓名(必选)')
  • 如果同时指定了add_argument()的参数如add_argument('-n',  '--name') 那么在获取参数值时应为--开始指定的如name = args.name

     

使用sys接收参数

  • 传递的参数应与接收的参数个数对应  参数只能比接收的变量多而不能少  多的部分将忽略

 

 

关注微信公众号

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我变了_我没变

随意 。。。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值