Форум сайта python.su
0
Вобщем нужно сделать заполнение файла введёнными данными и также считывание данных из файла с выводом на экран.
Думал сделать проверку на заполненность файла и если в нём уже есть записи, то добавлять новые в конец файла(а именно ключи с параметрами - имя, фамилия, год рождения в словарь).
import pickle import sys def add_stud(FILENAME, users): with open(FILENAME, "ab") as file: pickle.dump(users, file) def print_stud(FILENAME): i = 1 with open(FILENAME, "rb") as file: users_from_file = pickle.load(file) for user in users_from_file: print('[', i, '] - ', "Имя:", user[0], "\tФамилия:", user[1], "\tГод рождения:", user[2]) i += 1 FILENAME = "users.dat" while True: print(" [1] - Добавить запись о студенте") print(" [2] - Удалить запись о студенте") print(" [3] - Вывести на экран записи о студентах") print(" [4] - Отсортировать записи по возрасту") print(" [5] - Средний возраст студентов") print(" [6] - Выход из программы") do = input("Укажите номер действия: ") if do == "1": users = [ [input('Имя - '), input('Фамилия - ') ,int(input('Год рождения - '))] ] '''users = { 0: input('Имя - '), 1: input('Фамилия - '), 2: int(input('Год рождения - ')) }''' add_stud(FILENAME, users) print('Запись добавлена\n') elif do == "2": pass elif do == "3": print_stud(FILENAME) elif do == "4": pass elif do == "5": pass elif do == "6": sys.exit() else: print("\nПопробуй еще раз.\n")
Отредактировано life1919 (Ноя. 4, 2017 13:21:49)
Офлайн
568
life1919Вы правда думаете, что это слово так пишется?
Вообщем
Офлайн
568
life1919
Зачем тут pickle, почему не писать данные, например, в xml?
Офлайн
0
FishHookНужно чтобы в файле данные хранились в бинарном виде
life1919Зачем тут pickle, почему не писать данные, например, в xml?
Офлайн
568
life1919Кому нужно и зачем?
Нужно чтобы в файле данные хранились в бинарном виде
Офлайн
0
FishHookИ что мне в таком случае делать?
Офлайн
568
import pickle class Person: def __init__(self, name): self.name = name p1 = Person("Vasya") p2 = Person("Petya") print(pickle.dumps(p1)) print(pickle.dumps(p2))
b'\x80\x03c__main__\nPerson\nq\x00)\x81q\x01}q\x02X\x04\x00\x00\x00nameq\x03X\x13\x00\x00\x00Vasya Zilbershteiynq\x04sb.' b'\x80\x03c__main__\nPerson\nq\x00)\x81q\x01}q\x02X\x04\x00\x00\x00nameq\x03X\x0c\x00\x00\x00Petya Ivanovq\x04sb.'
\x80\x03c__main__\nPerson\nq\x00)\x81q\x01}q\x02X\x04\x00\x00\x00nameq\x03X\x13\x00\x00\x00Vasya Zilbershteiynq\x04sb.\x80\x03c__main__\nPerson\nq\x00)\x81q\x01}q\x02X\x04\x00\x00\x00nameq\x03X\x0c\x00\x00\x00Petya Ivanovq\x04sb.
Офлайн
568
life1919
Задание заключалось в создании БД в бинарном файле с возможностью добавления, удаления, сортировки и вывода записей на экран
Офлайн