一文搞清python中的argparse与sys.argv方法,argparse和sys.argv可以一起使用么?

理清概念

argparse:

argparse是python中的一个内置模块,argparse== argument(参数)+ parse(解析) 。其作用类似字典:给某个程序设置几个参数,并且可以用命令行的形式把值传给它们。举例而言:

python demo.py --data='xxx.txt' --model='xxx.pth'

sys.argv:

sys也是python中的一个内置模块,而argv是sys里的一个用法,代表命令行参数,其作用类似列表:同样是给某个程序设置几个参数,命令行中参数以空格为分隔。举例而言:

python demo.py xxx.txt xxx.pth

具体用法

argparse:

import argparse 
def parse_args():
    parser = argparse.ArgumentParser(description="you can add those parameter")       
    parser.add_argument('--data', default="xxx.txt", help="The path of data")
    parser.add_argument('--model', default='xxx.pth', required=True) # required=True代表必须指定该参数
    args = parser.parse_args() 
    return args

if __name__ == '__main__':
    args = parse_args()
    print(args.model)

python demo.py --data='xxx.txt' --model='xxx.pth' 

sys.argv:

import sys
a = sys.argv[0]  # 当前py文件路径
print(a) # demo.py
b = sys.argv[1]  # py文件后的第一个参数
print(b) # xxx.txt
c = sys.argv[2] # py文件后的第2个参数
print(c) # xxx.pth

python demo.py xxx.txt xxx.pth

二者如何一起使用

argparse和sys.argv可以结合在一起使用么,这是很多初学的小伙伴经常会遇到的问题?
答案是可以的!直接上代码:

import sys

import argparse 
def parse_args():
    parser = argparse.ArgumentParser(description="you can add those parameter")       
    parser.add_argument('--data', default="xxx.txt", help="The path of data")
    parser.add_argument('--model', default='xxx.pth', required=True)
    args = parser.parse_args() 
    return args

a = sys.argv[0]  # 当前py文件路径
print(a) # demo.py
b = sys.argv[1]  # py文件后的第一个参数
print(b) # xxx.txt
c = sys.argv[2] # py文件后的第2个参数
print(c) # xxx.txt
args = parse_args(sys.argv[3:]) # 从py文件后的第2个参数以后的参数开始解析
    print(args.model)

python demo.py xxx.txt xxx.pth --data='xxx.txt' --model='xxx.pth' 
  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值