str = 'len=1800'
截取字符串中数字,并转化为数字
str1 = str[4:] #得到字符串 '1800',
num = eval(str1) #将字符串转换为数字,eval 用于比较复杂的情况,也可以直接用int(str1)
#eval用于更复杂的情况,比如 str_num = "(2+3)*5" num = eval(str_num)
str = '00041612 16:28:12 [17620] mainframe-com_m_nFrame = 9,len=1800 m_bMeasureStatus=0, dTempx=,1872,1030.390244,nError=0,'
可以用 temp = str.split(',')
string.split一次处理一个分隔符,对于多个分隔符时可以用正则表达式,但处理较慢
对于多个分隔符时,可以用re.split()
首先import re 然后调用split即可
#TempList = re.split('[, ]', line) #此处空格分割还是有问题
TempList = re.split(r'[,\s]', line) #用这个
上面代码的分隔符为逗号,与空格\s
#字符串 find找不到返回-1; index找不到返回error
nPos1 = line.find('len=') #数据长度
nPos2 = line.find('dTempx=,') # 数据长度
TempList = re.split(r'[,\s]', line)
中字符串前r'[,\s]' 加上了r,r为raw的意思,raw string 原始字符串,此字符串中的 \s \t \n \b \r ... 等转义符号,就不进行转义了, 为原来的表示,去掉反斜杠的转移机制。常用于正则表达式,对应着re模块。
\s 空格
\n 换行
\t tab键
以 f开头表示在字符串内支持大括号内的python 表达式
a = 2
b = 3
name = 'nihao'
print(f'{name} done in {b - a} ')
#输出为: nihao done in 1
str_num = "av:{0:.2f}".format(aver_pos1) #显示文字,保留小数点后两位
strip():把头和尾的空格去掉
lstrip():把左边的空格去掉
rstrip():把右边的空格去掉
参考:
详解Python中字符串前“b”,“r”,“u”,“f”的作用_python_脚本之家 (jb51.net)https://www.jb51.net/article/176601.htm