C语言储存二进制文件的函数,Python如何批量读取不同的文件,并打印每个文件中储存的所有变量名字
请大神指导,有一系列C语言储存函数生成的二进制文件,其储存函数结构类似(如下所示),但是储存函数循环中的变量个数不同, 现在如何用Python批量读取C语言函数来读取二进制文件并打印文件中所有变量名字?
感谢提供任何思路!
void dataload()
{
/* Load in Binary Format —————————- /
{
fl = fopen(flile1,”rb”);
/ Sizes of var definition /
sini=sizeof(n1);
slong=sizeof(m1);
sfloa=sizeof(ival0);
sdoub=sizeof(ival1);
/ Check sizes of variables /
fread(&szcur,1,1,fl);if (szcur!=sini) {exit(0);}
fread(&szcur,1,1,fl);if (szcur!=slong) {exit(0);}
fread(&szcur,1,1,fl);if (szcur!=sfloa) {exit(0);}
fread(&szcur,1,1,fl);if (szcur!=sdoub) {exit(0);}
/ Grid /
fread(&xnumx,slong,1,fl);
fread(&ynumy,slong,1,fl);
fread(&nodenum,slong,1,fl);
fread(&bondnum,slong,1,fl);
fread(&marknum,slong,1,fl);
fread(×um,sdoub,1,fl);
/ information /
fread(markn0,sdoub,rnum,fl);
fread(markn1,sdoub,rum,fl);
fread(marks0,sdoub,rnum,fl);
fread(marks1,sdoub,rnum,fl);
/ Node information /
for (m1=0;m1<nodenum;m1++)
{
fread(&ival0,sfloa,1,fl);pr[m1]=(double)(ival0);
fread(&ival0,sfloa,1,fl);vx[m1]=(double)(ival0);
fread(&ival0,sfloa,1,fl);vy[m1]=(double)(ival0);
fread(&ival0,slong3,fl);bon[m1]=(double)(ival0);
}
/ Grid /
for (m1=0;m1<xnumx;m1++)
{
fread(&ival0,sfloa,1,fl);gx[m1]=(double)(ival0);
}
for (m2=0;m2<ynumy;m2++)
{
fread(&ival0,sfloa,1,fl);gy[m2]=(double)(ival0);
}
/ Bondary /
for (m1=1;m1<bondnum;m1++)
{
fread(&m2,slong,1,fl);
fread(&m3,slong,1,fl);bondm[m2]=m3;
/ Check boundary array /
if(m3>MAXBON) {printf(“Space out in bondv[]”); exit(0);}
fread(&ival0,sfloa,1,fl);bondv1[m3][0]=(double)(ival0);
fread(&ival0,sfloa,1,fl);bondv1[m3][1]=(double)(ival0);
fread(&m2,slong,1,fl);bondn1[m3]=m2;
}
/ Markers/
for (mm1=0;mm1<marknum;mm1++)
{
/ General information load /
fread(&ival0,sfloa,1,fl);markx[mm1]=ival0;
fread(&ival0,sfloa,1,fl);marky[mm1]=ival0;
fread(&nn1,1,1,fl);markt[mm1]=(int)nn1;
}
}
/ Load in Binary Format —————————- */
fclose(fl);
}
推荐文章: