【发布时间】:2020-12-16 04:54:17
【问题描述】:
我正在尝试像这样拆分二进制数据字符串:
trama = b'1 ; 12.0073 ; NAN ; NAN\r\n919.537 ; 1082.14 ; 0\r\n0 ; 850.26 ; NAN\r\n0 ; 0 ; 0\r\n0 ; 0 ; #\r\n1 ; 11.9612 ; NAN ; NAN\r\n933.792 ; 1097.16 ; 0\r\n0 ; 846.597 ; NAN\r\n0 ; 0 ; 0\r\n0 ; 0 ; #\r\n'
我想要的是找到# 分隔符,因为这意味着此时一组数据结束,因此以下是另一个不同的示例。
我想要这个:
[
['1', '12.0073', 'NAN', 'NAN', '919.537', '1082.14', '0', '0', '850.26', 'NAN', '0', '0', '0', '0', '0'],
['1', '11.9612', 'NAN', 'NAN', '933.792', '1097.16', '0', '0', '846.597', 'NAN', '0', '0', '0', '0', '0']
]
现在我正在做所有这些过程:
trama = b'1 ; 12.0073 ; NAN ; NAN\r\n919.537 ; 1082.14 ; 0\r\n0 ; 850.26 ; NAN\r\n0 ; 0 ; 0\r\n0 ; 0 ; #\r\n1 ; 11.9612 ; NAN ; NAN\r\n933.792 ; 1097.16 ; 0\r\n0 ; 846.597 ; NAN\r\n0 ; 0 ; 0\r\n0 ; 0 ; #\r\n'
values = [
i.strip().decode() for i in trama.split()
if i.strip().decode() not in [";"]
]
a, b = [], []
for i in values:
if i != '#':
b.append(i)
else:
a.append(b)
b = []
它有效,但我确信存在一种更简单的方法来做同样的事情。有人知道实现它的pythonic方法吗?
【问题讨论】:
标签: python