python将argv作为参数,在Python中处理命令行参数详解(sys.argv 与 argparse 详解)

在Python中处理命令行参数详解(sys.argv 与 argparse 详解)

在运行python程序的时候,往往需要传入一些参数,本节主要介绍两种设置传入命令行参数的方法。

sys.argv

使用sys.argv处理传入参数,需要引入sys模块:

import sys

sys.argv即是使用命令行运行 python 命令(或者 python3 命令)时获取到的命令行参数数组,它是一个list,包含了python(或者python3)命令后边传入的内容,包括紧跟在 python/python3 后边的第一个脚本的名称,后边其他的参数,如果有的话,则是按照空格来标识不同的参数,即使用空格隔开的元素(不论是整数、字符串、小数等)都视为一个独立的参数,比如如下的程序:

import sys

print(type(sys.argv))

print(len(sys.argv))

print(sys.argv)

我们在命令行中使用如下命令运行该脚本:

python main.py 123 1.5 hello world

就会得到如下的运行结果:

5

['main.py', '123', '1.5', 'hello', 'world']

从结果可以看到,这些参数在sys.argv中都以字符串的形式存储,所以如果想得到整数、小数等,需要使用 int、float 等进行显式转换:

import sys

a = int(sys.argv[1])

b = int(sys.argv[2])

print(a+b)

调用:

main.py 123 456

就会得到579的结果。

需要注意的是,脚本名称本身占据了sys.argv[0],所以其他传入的参数实际是从sys.argv[1]开始的。

这种方式虽然简单,但是可用性比较小,必须按照顺序传入参数,而且我们熟悉的 - 和 -- 形式的参数是不起作用的:

python main.py --a 123 --b 456

['main.py', '--a', '123', '--b', '456']

所以可以使用下边的功能更加强大、复杂的第二种方法

argparse

argparse的使用需要引入argparse包:

import argparse

我们将这种方法称为参数解析器方式,其使用可以分为三个基本步骤:

实例化参数解析器

使用ArgumentParser实例化一个参数解析器:

parser = argparse.ArgumentParser()

class argparse.ArgumentPar

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值