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

编程入门 行业动态 更新时间:2024-10-13 14:25:32

python optparse<a href=https://www.elefans.com/category/jswz/34/1771428.html style=模块以及与sys.argv的对比"/>

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来获取,这样必须记住每个值在列表中的位置,否则很难获取。

更多推荐

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

本文发布于:2023-07-28 20:00:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1295015.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模块   optparse   python   sys   argv

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!