如何从 C 头文件中的全局变量列表中有效地导入 Python 中的值

How to import efficiently values in Python from a list of global variables in a C header file

我想找到一种高效快捷的方法将全局变量列表的值从 C 头文件加载到 Python。例如,假设我有文件 header.h:

/* comments */
int param_nx=2049; // comment
int param_ny=2049; // comment
double param_dt=0.01; // comment

有没有一种简单的方法可以用 Python 读取这个文件,跳过注释,并在那里定义相应的变量?我不介意使用相同的变量名。

试试这个。

import re

r = re.compile("(double|int) ([a-zA-Z_]+)=([0-9\.]+)")

header = """/* comments */
int param_nx=2049; // comment
int param_ny=2049; // comment
double param_dt=0.01; // comment"""

params = {}

for line in header.split("\n"):
    m = r.search(line.strip())
    if m:
        if m.group(1) == "int":
            params[m.group(2)] = int(m.group(3))
        elif m.group(1) == "double":
            params[m.group(2)] = float(m.group(3))
print(params)

输出:

{'param_dt': 0.01, 'param_nx': 2049, 'param_ny': 2049}