2014-09-25 22 views
0

我想將C逗號分隔的數組文件 寫入python列表,並在將數據發送到另一個文件之前對數據執行一些操作 。 關於如何做到這一點,而忽略評論的任何想法?將C逗號分隔的十六進制文件轉換爲python

// Example file data.h 
unsigned const short font_5x7[480] = { 
    0x00,0x00,0x00,0x00,0x00, // 
    0x00,0x00,0xfa,0x00,0x00, // ! 
    0x00,0xe0,0x00,0xe0,0x00, // " 
    0x28,0xfe,0x28,0xfe,0x28, // # 
    0x24,0x54,0xfe,0x54,0x48, // $ 
    0xc4,0xc8,0x10,0x26,0x46, // % 
etc..... 
+0

你想要一個C語法分析器嗎? – simonzack 2014-09-25 11:33:03

回答

0

使用這樣

(?<data>[^/]*?)[ ]*//[^\n]*([\n\r]|()) 

現在,在「數據」一正則表達式組有essentialy這個

0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0xfa,0x00,0x00, 
0x00,0xe0,0x00,0xe0,0x00, 
0x28,0xfe,0x28,0xfe,0x28, 
0x24,0x54,0xfe,0x54,0x48, 
0xc4,0xc8,0x10,0x26,0x46, 

你只需要通過所有的火柴itterate並粘貼在一個字符串

0

如果您處於訪問代碼和C編譯器的位置,它可能會更容易編寫一個小的C程序,以輸出在一個更好的格式的數據:

#include <stdio.h> 
#include "data.h" 

int main(int argc, char *argv[]) 
{ 
    int i; 
    for (i=0; i<480; i++) 
    printf("%i\n", font_5x7[i]); 
    return 0; 
} 
0

使用正則表達式

(0x\d+), 

捕獲全局十六進制數字。

然後

int(hex_num, 16) 

將它們變成整數。

相關問題