2015-12-21 30 views
1

我正在使用arduino和python创建RFID卡数据收集的代码。我已经制定了如何将arduino串行输出提供给Python,并将其保存到名为Card ID的文件中,这非常棒。将文本数据转换为可以在python中清理的数组?

现在我需要清理数据,但是我无法绕开它。 此处的数据(不知道如何意图在这里,FML):

Card UID: 0A 2E 45 35 
PICC type: MIFARE 1KB 
Sector Block 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 AccessBits 
    15  63 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    14  59 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     58 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     56 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    13  55 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    12  51 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     49 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    11  47 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    10  43 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    9  39 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    8  35 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    7  31 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    6  27 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    5  23 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    4  19 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    3  15 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
     12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    2  11 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
     10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
      9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
      8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
    1  7 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
      6 09 05 00 15 33 14 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ] 
      5 73 73 73 73 73 73 73 73 73 73 73 73 73 73 42 95 [ 0 0 0 ] 
      4 20 20 5A 76 69 65 64 72 69 73 73 73 73 73 73 73 [ 0 0 0 ] 
    0  3 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ] 
      2 73 73 73 73 73 73 73 73 73 73 73 73 73 73 42 95 [ 0 0 0 ] 
      1 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 [ 0 0 0 ] 
      0 0A 2E 45 35 54 88 04 00 85 00 B4 2E F0 BB 6A A8 [ 0 0 0 ] 

我怎样才能将其转换为在anarray形状,其中列和行可以与制表删除等间隔的文本?我只需要HEX数据,现在它被解释为\ n的字符串。

+0

我会使用每行的正则表达式。 – tglaria

回答

1

我不完全确定你需要什么,但好像你想要一个二维列表,其中包含十六进制数据与列和行的顺序。

如果确实是这样,我会做这样的:一步

data = """73 73 73 73 73 73 73 73 73 73 73 73 73 73 42 95 [ 0 0 0 ] 
73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 [ 0 0 0 ] 
0A 2E 45 35 54 88 04 00 85 00 B4 2E F0 BB 6A A8 [ 0 0 0 ]""" 

lst = map(lambda x: x[:-11].replace(" "," ").split(" "),data.split("\n")) 
print lst 

说明步:

数据被编组为多行字符串。

map是一个函数,它允许您在列表中处理列表中相对于给定函数(map()中的左参数)的列表中的所有元素。

喜欢:

lst = ["1", "2", "3", "4", "5"] 
map(int, lst) 

会给你一个整数列表,而不是字符串列表。 和等价于:

map(lambda x: int(x), lst) 

正如你看到所有我们做的是定义一个函数列表中的改变每个项目。

这是我在示例中做的,我通过用[:-11]剪辑结尾来更改每一行。这就是为什么我使用地图功能,当然你可以用for循环来轻松完成。如果您需要解决方案中关于split()的解释,请提及。

它给你;

[['73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '42', '95'], 
['73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '73', '73'], 
['0A', '2E', '45', '35', '54', '88', '04', '00', '85', '00', 'B4', '2E', 'F0', 'BB', '6A', 'A8']] 

现在您可以通过列和行操作访问数据并对其进行更改。

如果不是你所需要的,这可能是因为你没有详细说明你需要什么,如果你能给出详细的细节我当然可以帮助更多。

+0

感谢您的回复,我会尽力处理这个问题,但可能不是我需要的。数据混杂在额外的信息,我需要摆脱。行和列编号对我没有任何好处,我需要的只是HEX的东西,对我来说清理它非常复杂。据我所知,这只查找一块日期,并将其转换为数组,但我不太确定它是如何工作的。你能解释一下吗? “map(lambda x:x [: - 11]”对我来说太复杂了。 –

+0

如果垃圾数据位于十六进制行的左侧和右侧,请考虑使用[:5],[:10]类的符号,我已经在答案的最后使用了该符号,但没有包含该行的开头,这是枚举行。我将在一秒内解释 – Rockybilly

+0

我想我明白了:lst = map(lambda q:q [14:-13] .replace(“”,“”).split(“”),x.split(“\ n“))给了我想要的结果。现在只需要删除数组中的顶部和底部线。任何伟大的方式来做到这一点? 非常感谢! –

相关问题