split函数与argparse模块

关于python一些函数的注意事项

split函数

split函数可以用来字符串分割,函数的原型是

str.split([separator[, maxsplit]])
# spearator表示分割符号
# maxsplit 表示最多分割次数

例如,我有如下的字符串需要进行分割

#'sda,da,ad,ba'
str='sda,da,ad,ba'
lines = str.split(',')
print(lines)

['sda', 'da', 'ad', 'ba']

可以看到最终返回一个列表的形式,这里也可以选择maxsplit选择最多分割两次,会在两个分隔符部位进行分隔。

str='sda,da,ad,ba'
lines = str.split(',',maxsplit=2)
print(lines)

['sda', 'da', 'ad,ba']

那么,只有一个元素split也会返回一个列表的形式,如果带有分割符,会返回含有两个元素的列表,一个是现有字符串,一个是空字符串而如果没有分隔符则也是一个列表的形式

str='sda'
lines = str.split(',')
print(lines)

#['sda']

str='sda,'
lines = str.split(',')
print(lines)

#['sda', '']
sys.argv

当我们用命令行运行python脚本时,一般会传递参数,使用sys模块中的sys.argv可以访问到所有的参数。

import sys
#在命令行中输入python script.py a b
print(sys.args) 

最后的运行结果如图所示
命令行运行结果
所有参数的格式会以列表的形式展示,其格式为脚本地址+其他参数,那么就可以取出参数,比如,如果我传入两个参数进行加法,就可以使用如下的写法。

import sys
a = eval(sys.argv[1])
b = eval(sys.argv[2])
print(f'{a}+{b}的结果为{a+b}\n')

加法
但是如果参数太多,并且具有不同的类型和用途就不便于管理,所以就有了argparse模块。parse是解析的意思,很容易理解,这个模块就是解析参数的意思。

agrparse

步骤是:

  • 1,创建解释器
parser = argparse.ArgumentParser()
  • 2,添加参数
parser.add_argument('--a',type=int,help="operator a")
parser.add_argument('--b',type=int,help="operator b")

#输出
args = parser.parse_args()
#取出a
args.a #整数类型
#取出b
args.b #整数类型

这样parser会自动解析这里面的–a的参数和–b的参数。
参数解析
当要使用help直接写上–help就会打印描述的信息
help的用法
默认值问题
一般如果未指明默认值,所有参数的默认值为None
默认值
当然,使用defaul可以改变默认值

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('--a',type=int,default=0,help="operator a")
parser.add_argument('--b',type=int,default=0,help="operator b")

#输出
args = parser.parse_args()
print(args)                                                                   ~                    

default
位置参数
去掉两个小横线就是位置参数,并且是必须填的。

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('method',type=str,help="位置参数")
parser.add_argument('--a',type=int,default=0,help="operator a")
parser.add_argument('--b',type=int,default=0,help="operator b")

#输出
args = parser.parse_args()
print(args)

位置参数

开关flag

有的时候运行时候需要知道有没有传入该参数,这里有action参数可以选择,一般有两种情况store_truestore_false但是参数会变成bool值,所以无法与type联用。

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('method',type=str,help="位置参数")
parser.add_argument('--a',action="store_true",help="operator a")
parser.add_argument('--b',action="store_true",help="operator b")

#输出
args = parser.parse_args()
print(args)                                                                                                                                                                

action
更多方法可以访问
https://docs.python.org/zh-cn/3/library/argparse.html

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值