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 回答