众所周知,python处理文本非常方便,内置读写函数,不用引用第三方的模块,相比起Java,简直一个天上一个地下。不信可以感受一下:Java中的文件处理方式 ,光名字长(chang)的就让你头疼。
某天,我们要往GPS芯片中写入一个EPO文件,美曰其名用来加速GPS定位。打开EPO文件,后缀是.DAT,看到是一堆16进制的数,就像这种:
1 | d813 0501 113e a4e9 ... |
数据应该是加密过的,看不出啥含义,但是写入到GPS芯片中要按字节写,1个字节算一个数,所以比如第一个数d813要拆成两个数。
写入的方式是通过一个全局的const数组,但是我们要把数据copy到.c文件中,但是格式要变一下,数组初始化的时候数据是用逗号分隔开的,且16进制要加0x,所以先把文本处理一下:
首先要把EPO.DAT中的内容拷贝到一个txt中,不知道为啥好像python打不开.DAT文件,貌似并不是纯文本格式。然后把文本逐行读出来处理(加0x前缀,加逗号),处理完之后可以写入到另外一个文本中,不要问我为什么不在同一个文本中搞,因为好像做不到边读边写。
代码如下:
1 | #!/usr/bin/env python |