python optparse模块以及与sys.argv的对比

对于optparse模块的操作是一个类似于sys.argv的,都是通过外界的输入来获取值,不过sys.argv获取到值后生成的是一个列表,并且第一个位置上是自己的文件名,如下:

# 通过sys.argv 获取的值
data_list = sys.argv
print(data_list)

# 第一次
# 运行
python test.py 1 2 3 4
# 输出
['test.py', '1', '2', '3', '4']

# 第二次
# 运行
python test.py -u root -p root123
# 输出
['test.py', '-u', 'root', '-p', 'root123']

# 对于获取到的值可以通过列表的方法来进行操作

而optparse模块虽然使用起来相对来说有点复杂,但对于获取到的值的操作更加方便。

# 首先创建一个对象
opt = optparse.OptionParser()
# 添加要用到的命令
opt.add_option('-u', '--user', dest='username')
opt.add_option('-p', '--pwd', dest='password')

# 注意
# 下面这种是错误的,因为-h在optparse模块中已经被定义了,用于查看帮助,可以直接使用,不能重新进行添加
# pt.add_option('-h', '--host', dest='host')

# 获取值
options, args = opt.parse_args()

# 打印
print(options)
print(args)

# 第一次
# 运行
python test.py 1 2 3 4
# 输出
{'username': None, 'password': None}
['1', '2', '3', '4']

# 第二次
# 运行
python test.py -u root -p root123
# 输出
{'usename': 'root', 'password': 'root123'}
[]

# 第三次
# 运行
python test.py -u root -p root123 1 2 3 4
输出
{'usename': 'root', 'password': 'root123'}
['1', '2', '3', '4']

options:返回的不是一个字典,而是一个类 <class ‘optparse.Values’>,而我们要取的值是他的属性。
获取options中的值:options.username

args:返回的是一个列表,用于存储前面没有被添加的命令。

总结: 相比之下,用optparse模块用来获取外界输入的值更加灵活,更加便于我们的使用,而不是通过sys.argv来获取,这样必须记住每个值在列表中的位置,否则很难获取。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值