0

python は (ファイルから) C 配列を取り込んで処理を行うことができますか? たとえば、次を含む C ヘッダーがあるとします。

static char bin[] = {...}; // whole bunch of hex values

配列に含まれるバイト数をカウントする Python スクリプトを作成できますか? これを行う理由は、これらのヘッダーが約 100 個あり、そのうちのいくつかは同じ配列名を持っているため、これらすべてとそれぞれのサイズを含めることはできません。
何を調べる必要があるかについての提案はありますか?Python である必要はありませんが、これは適切なツールだと思います。

ありがとう!

4

2 に答える 2

0

配列初期化子が複数行にまたがらない場合、この Perl ワンライナーが役立つ場合があります。

perl -lne '($p)=($_=~/static char bin\[\] = \{([^}]*)\}/) and
      $p=~s/[^,]*//g; print length($p)' input.h
于 2013-05-31T01:48:16.890 に答える
0

Pythonバージョンでの試みは次のとおりです。

各配列の値がカンマで区切られている場合は、次のことを試すことができます。

import glob

#get all the headers in the current directory
headers = glob.glob("*.h")

for header in headers:
    fp = open(header, "r")
    for line in fp.readlines():
        if line.startswith("static char"):
            bits = line.split(",")
            count = len(bits)-1
            print "Found array starting %s"%bits[0]
            print "containing %d bytes"%count
            print "in file %s"%header

これは、コンマ区切りのようないくつかの仮定を行い、見つけたものを出力するだけです-情報をどうするかはあなた次第です-これは質問では明確ではありませんでした

于 2013-05-31T01:51:12.250 に答える