Я сталкиваюсь со следующим вопросом. Я записал некоторые данные двойного типа в двоичные файлы, используя C, и теперь я хочу прочитать их, используя Python. Когда я использовал функцию Python
with open("test.dat","rb") as dfile:
data = dfile.read()
Это дало мне
Ь '\ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ XF8? \ X00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x04 @ \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ п @ \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x11 @
Итак, я попытался декодировать, используя data.decode()
, тогда это дало мне ошибку декодирования. Я полагаю, это потому, что я использовал неправильный тип кодировки. Но я пробовал ascii
и utf-8
, и они не работали. Поэтому у меня два вопроса:
Как я могу прочитать двоичный файл, не зная тип кодировки?
Поскольку я не указал тип кодирования при записи двоичного файла в c, кодирует ли c данные вообще? Если да, то какой это будет тип кодировки?
К вашему сведению, код, который я использовал для записи двоичного файла, в первую очередь -
#include <stdio.h>
int main(){
double buffer[4]= {1.5, 2.5, 3.25, 4.25};
FILE *ptr;
ptr = fopen("test.dat", "wb");
fwrite(buffer,sizeof(buffer),1,ptr);
printf("%ld\n",sizeof(buffer));
return 0;
}