TXT文件中的串口数据出现不规则乱行
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72
RXD: 2023/05/17: 00:57:54(774): 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00
RXD: 2023/05/17: 00:57:54(774): 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00
RXD: 2023/05/17: 00:57:54(774): 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01 55 14 7D 01 75 01 77 01
RXD: 2023/05/17: 00:57:54(774): 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01
RXD: 2023/05/17: 00:57:54(774): 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55
RXD: 2023/05/17: 00:57:54(774): 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
如何用python处理成以下文本
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:54(464): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
RXD: 2023/05/17: 00:57:53(454): 00 00 01 55 14 7D 01 75 01 77 01 7C 01 72 01 78 00 00 00 00 00 00 00 00 00 00 0F 02 00 0A 03 03 14 55 23
看起来 00 00 01 是共同的前缀
那么如果开头不是 00 00 01,就连在之前的数据后面
遇到新的 00 00 01,再统一输出
# 定义用来存储完整数据的列表
full_data = []
partial_data11 = []
partial_data12 = []
# 打开文件并逐行读取
with open(r"E:\#1号机-A3_2023-5-17.txt", "r") as file:
lines = file.readlines()
# 定义用来存储部分数据的列表
partial_data = []
# 遍历所有行
for line in lines:
# 以":"为分隔符,获取每行中最后的数字数组部分
values = line.split("):")[-1].strip().split(" ")
values1 = str(line.split("):")[0])+"):"
# print(values1)
partial_data = []
partial_data1 = values
# # 如果当前行的数字数组长度为35
if len(values) == 35:
values.insert(0, values1)
full_data.append(values)
else:
# if len(partial_data1) >0:
print('-------------',len(partial_data1),partial_data1)
partial_data1.insert(0, values1)
partial_data11.append(partial_data1)
if len(partial_data11) ==2:
# partial_data11[0].insert(0, values1)
TI1 = partial_data11[1][0]
partial_data11[1].pop(0)
partial_data111 = partial_data11[0]+partial_data11[1]
print(partial_data111)
full_data.append(partial_data111)
full_data.append(TI1)
partial_data11=[]
# 否则将当前行的数字数组设置为部分数据
# 将完整数据写入文件
# print(full_data)
with open(r"E:\#1号机-A3_2023-5-1177.txt", "w") as file:
for data in full_data:
if '00' in data:
file.write(" ".join(data) + "\n")
else:
file.write("".join(data) + "\n")
print("文件保存成功!")
上面代码的缺点是拼接后):为空的状态没有删除。