关于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就会打印描述的信息
默认值问题
一般如果未指明默认值,所有参数的默认值为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) ~
位置参数
去掉两个小横线就是位置参数,并且是必须填的。
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_true和store_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)
更多方法可以访问
https://docs.python.org/zh-cn/3/library/argparse.html