python命令行传参执行脚本报错_Python脚本命令行传参方式

阅读量:

65

在运行Python脚本时需要传入参数,例如species和folds,可以使用2种方式

python script.py ecoli 10

python script.py -s ecoli --folds 10

这2种格式对应不同的参数解析方式,分别为sys.argv、argparse。两者都是python内置包。

1. sys.argv

sys模块较为常用,它封装了与python解释器相关的数据。例如,sys.modules里存储已经加载的所有模块的信息,sys.path里是PYTHONPATH的内容,而sys.argv封装了传入的参数数据。

使用sys.argv接收上面第一个命令中包含的参数,方式如下:

import sys

species = sys.argv[1] # 第一个参数

folds = sys.argv[2] # 第二个参数

print(f'species = {species}')

print(f'folds = {folds}')

2. argparse

使用argparse包对输入参数进行解析,方式如下:

import argparse

parser = argparse.ArgumentParser(description='Demo of argparse')

parser.add_argument('-s', '--species', type=str, default='ecoli', help='ecoli, scere')

parser.add_argument('-f', '--folds', type=int, default=50, help='10, 30, 50, 75, 100')

args = parser.parse_args()

species = args.species

folds = args.folds

print(f'species = {species}')

print(f'folds = {folds}')

parser.add_argument方法的type参数一般只使用bool、int、str、float等基本类型,复杂类型可以通过str传入,再手动解析。

bool类型传入后的解析比较特殊,传入任何值都会被解析成True,传入空值时才为False。

argparse.ArgumentParser中的description是脚本整体描述,各argument中的help是各个参数的描述。用-h或--help查看,如下图:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值