У меня есть объект класса, который я хочу записать в файл данных. Объекты p1 и p2 должны быть записаны в файл данных. И снова можно непосредственно прочитать объект. Я знаю, что есть такой же подход, но я не хочу этого.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
p2 = Person("Michael", 30)
# Now I want to write this object into a dat file
fp = open("file.dat", "w")
fp.write(p1)
# And while reading I want this object to be read directly into the variable
fp = open("file.dat", "w")
p1 = fp.read()
p2 = fp.read()
Можно ли в python сделать то же самое?
Вот соответствующий C программа для того же
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct car {
int id;
char name[15];
int price;
char colors[3][5];
} car;
int main()
{
car obj1 = { .id = 5,
.name = "honda city zx",
.colors = {"red", "black", "blue"}
};
car obj2 = { .id = 6,
.name = "honda city",
.colors = {"lal", "kala", "neela"}
};
FILE *fp;
//WRITING TO THE FILE
fp = fopen("car_details.dat", "w");
fwrite(&obj1, sizeof(obj1), 1, fp);
fwrite(&obj2, sizeof(obj2), 1, fp);
fclose(fp);
// READING FROM THE FILE
fp = fopen("car_details.dat", "r");
car obj;
while(fread(&obj, sizeof(obj), 1, fp))
{
printf("id : %d\nname : %s\nprice : %d\ncolors : {%s, %s, %s}\n\n", obj.id, obj.name, obj.price, obj.colors[0], obj.colors[1], obj.colors[2]);
}
return 0;
}
Как мне сделать то же самое в python?