需求:
从txt文件中读取特定的数据(数据有多组)
数据:[app run time:] [TPS:]后面的数据
并把数据保存到excel中.
部分数据如下:
************************app run time:65.4136ms******************
****************************TPS:30.57468171756332************************
*********************Communication nums:40****************
...................................................................
************************app run time:27.8785ms******************
****************************TPS:32.15706367420178************************
*********************Communication nums:40****************
....
....
...
代码:
分两步走:
- 1.读取txt,正则匹配出指定字符,存入 列表中
- 2.将列表中的数据写入excel中
1.导入相应模块, txt文件地址 和 excel保存路径.
import re
import xlsxwriter
txt_url = r"C:\Users\Administrator\Desktop\data\data3.txt"
sava_url = r'C:\Users\Administrator\Desktop\data\data3.xlsx'
# 读取txt 并提取指定字符
def readTXT():
with open(txt_url, 'r', encoding='utf-8') as f:
content = f.read() # 读取txt文件内容 保存到content中
start = "time:"
end = "ms"
pattern = re.escape(start) + r'(.*?)' + re.escape(end) #re.escape()函数用于转义start和end字符串中的特殊字符
result1 = re.findall(pattern, content, re.DOTALL) #re.DOTALL标志来让.匹配包括换行符在内的任意字符
start = "TPS:"
end = "*"
pattern = re.escape(start) + r'(.*?)' + re.escape(end) #re.escape()函数用于转义start和end字符串中的特殊字符
result2 = re.findall(pattern, content, re.DOTALL) #re.DOTALL标志来让.匹配包括换行符在内的任意字符
return result1, result2
2.保存到excel中
def saveExcel(str1, str2):
# todo 创建excel文件
xl = xlsxwriter.Workbook(sava_url)
# todo 添加sheet
sheet = xl.add_worksheet('sheet1')
k = -4
j = 0
# todo 往单元格cell添加数据,索引写入
for i in range(len(str1)):
if i % 50 == 0: # 数据50一组
k = k + 4 # 每一组数据后 整体表格右移4格
j = 0 # 每一组数据后 重新从0行 开始存入
sheet.write_string(j, k, str1[i]) # j 表示行 k表示 列
sheet.write_string(j, k + 1, str2[i]) #(excel从左上角开始算0行0列)
j = j + 1 # 行+1 准备写入下一行
# # todo 设置单元格宽度大小
# sheet.set_column('A:B', 30)
# todo 关闭文件
xl.close()
调用函数执行
str1, str2 = readTXT()
print('time:',str1)
print('TPS:',str2)
saveExcel(str1, str2)
结果:
部分excel数据展示如下
谢谢阅读,感谢支持!如有错误,请多多指教