@kiddle

Как сохранять файл при нажатии крестика окна приложения?

Здравствуйте, я делаю парсер. Вся информация сохраняется в excel файл. Есть одно но, если парсер экстренно завершить, то часто данные не сохраняются и excel файл потом повреждается. Как сделать так, что из программы выходило только после сохранения? или есть еще какой-нибудь способ?
if not os.path.exists('output/output.xlsx'):
    wb = Workbook().save('output/output.xlsx')
else:
    wb = load_workbook('output/output.xlsx')

def write_to_excel(data, pos, name):
    ws = wb[name]
    ws['A' + pos] = int(pos) - 1
    ws['B' + pos] = data.get('Полное наименование/ФИО ИП', '')
    ws['C' + pos] = data.get('Адрес места нахождения ЮЛ/ИнЮЛ или жительства ИП', '')
    ws['D' + pos] = data.get('ОГРН', '')
    ws['E' + pos] = data.get('В лице', '')
    ws['F' + pos] = data.get('ФИО руководителя', '')
    ws['G' + pos] = data.get('Номер телефона', '')
    ws['H' + pos] = data.get('Адрес электронной почты', '')
    ws['I' + pos] = data.get('Регистрационный номер', '')
    ws['J' + pos] = data.get('Дата начала действия', '')
    ws['K' + pos] = data.get('Дата окончания действия', '')
    ws['L' + pos] = data.get('Схема декларирования', '')
    ws['M' + pos] = data.get('Статус', '')
    ws['N' + pos] = data.get('Стандарты', '')
    ws['O' + pos] = data.get('ТН ВЭД', '') if data.get('ТН ВЭД', '') else data.get('ТН ВЭД ТС', '')
    wb.save('output/output.xlsx')

for link in open('...'):
    try:
        .....
        write_to_excel(data, str(pos), sheetname)
     finally:
         wb.save('output.xlsx')
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы