python 拼接字

在编译脚本的时候,由于脚本的框架是统一写好的,于是乎用上了拼接字的功能, 本脚本实现的是波特率设置的自动化,利用的是正则表达式,TASK函数是统一写好的,此处只做调用

from Args import Args
import time
cz_IPR = [9600,19200,38400,57600,115200] # 此模组支持的波特率范围
s1 = 'AT+IPR=' #拼接字的其中一个字符串

cmds = [
Args(request="AT",regex="^ OK $",retry_limit=3,can_skip=True),

]
reboot = [
Args(request="AT+CFUN=1,1",regex=r"^ OK $",delay=20,can_skip=True),
Args(request="AT",regex="^ OK $",retry_limit=3,can_skip=True),
]

if __name__ == "__main__" or True:
from task import Task
Task(cmds).execute()
for n in range(10): # 循环执行波特率设置次数
for i in cz_IPR:
print(i)
s2 = i #拼接字的另外字符串
cz_iprset = [Args(request='{}{}'.format(s1, s2), regex="^ OK $", can_skip=True)] # 此处采用的是拼接字符串的format()拼接方式,通过for循环来赋予不同波特率来循环配置
Task(cz_iprset).execute()
Task.update_baudrate(i)
time.sleep(10)
Task(cmds).execute()
Task(reboot).execute()
Task.update_baudrate(115200) # 更新串口波特率的功能
time.sleep(5)
由于脚本用到了拼接字的功能,于是学习顺带学习了python中的相关拼接子的应用:
1、format()的拼接方式介绍:
例如:
# format 拼接方式:使用花括号{}做占位符,在format方法中再转入实际的拼接值
'''方式一'''
s1 = 'AT+IPR='
s2 = 9600
request='{}{}'.format(s1, s2)
print(request) #打印结果:AT+IPR=9600
'''方式二'''
request = '{str1}{str2}'.format(str1 = 'AT+IPR=',str2 = 9600) #
key-value的方式

print(request) #打印结果:AT+IPR=9600

request ='{0}{1}'.format('AT+IPR=',9600)    # 序号的方式
print(request)

上例中,方式一的花括号中无内容,缺点是容易弄错次序。方式二,一种传入序列号,一种则使用key-value的方式。实战中,我们更推荐方式二
2、'''来自C语言的%'''
cmd = '%s%d'%('AT+IPR=',9600)
print(cmd)

3、
'''() 类似元组方式'''
s_tuple = ('Hello', ' ', 'world')
s_like_tuple = ('Hello' ' ' 'world')

print(s_tuple) #('Hello', ' ', 'world')
print(s_like_tuple) #Hello world
print(type(s_like_tuple)) #<class 'str'>
这种方式看起来很快捷,但是,括号()内要求元素是真实字符串,不能混用变量,所以不够灵活
4、'''面向对象模板拼接'''
from string import Template
s = Template('${s1} ${s2}!')
print(s.safe_substitute(s1='Hello',s2='world'))

5、
'''常用的+号方式'''
str_1 = 'Hello world! '
str_2 = 'My name is Python猫.'
print(str_1 + str_2)
print(str_1)



原文地址:https://www.cnblogs.com/wellons/p/14185809.html