1.字符串的使用
1.1 字符串的截取
str = 'len=1800'
截取字符串中数字,并转化为数字
str1 = str[4:] #得到字符串 '1800',
num = eval(str1) #将字符串转换为数字,eval 用于比较复杂的情况,也可以直接用int(str1)
#eval用于更复杂的情况,比如 str_num = "(2+3)*5" num = eval(str_num)
1.2 字符串分割
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
1.3 查找字符find 与 index
#字符串 find找不到返回-1; index找不到返回error
nPos1 = line.find('len=') #数据长度
nPos2 = line.find('dTempx=,') # 数据长度
1.4在字符串前加r的用法-raw string 原始字符串,防止字符转义
TempList = re.split(r'[,\s]', line)
中字符串前r'[,\s]' 加上了r,r为raw的意思,raw string 原始字符串,此字符串中的 \s \t \n \b \r ... 等转义符号,就不进行转义了, 为原来的表示,去掉反斜杠的转移机制。常用于正则表达式,对应着re模块。
\s 空格
\n 换行
\t tab键
1.5字符串前加f--format string(格式化字符串)
以 f开头表示在字符串内支持大括号内的python 表达式
a = 2
b = 3
name = 'nihao'
print(f'{name} done in {b - a} ')#输出为: nihao done in 1
1.6格式化字符串,保留小数点两位
str_num = "av:{0:.2f}".format(aver_pos1) #显示文字,保留小数点后两位
参考:
详解Python中字符串前“b”,“r”,“u”,“f”的作用_python_脚本之家 (jb51.net)https://www.jb51.net/article/176601.htm