treeview get iid
Прошу подсказку. Есть treeview заполняем и присваиваем iid, все хорошо и попорядку. Если сохранить все в файл и потом его заново открыть и продолжить заполнение то iid начинается с начала. В файл сохраняется (csv), состав файлика
1,Петров,Участник.
2,Иванов,Участник
3,Сидоров,Участник
Как перед заполнением получить последний iid в файле. ?
кусочек кода:
def Add(self)
self.id = self.iid + 1
self.Treeview.insert('', index='end', values=(self.id,))
Ответы (2 шт):
Вам нужно проинициализировать вашу структуру при её создании.
Исходя из вашего кода, у вас есть класс с переменной iid
, которая при создании структуры инициализируется 0.
А вам же, нужно сначала прочитать файл (если он есть), взять последнюю строку, распарсить её и выяснить, какой id был на последней записи. Только после этого создавать ваш новый класс и инициализировать переменную iid
уже этим прочитанным значением. После этого можете продолжить работу со своей структурой как ранее.
Пока решил таким образом.
with open(file_path, newline="", encoding='utf-8') as file:
[last_line] = deque(file, maxlen=1) or ['']
self.iid = (last_line[last_line.find('')+0 : last_line.find(',')])
self.id = int(self.iid) + 1