Python exchangelib – экспорт элементов из папки «Входящие» в csv

Я использую exchangelib и работает хорошо, но когда я пытаюсь экспортировать информацию об элементе, например:

data= ("Inbox", item.datetime_received, item.sender, item.subject)

Когда я использую печать, все элементы отображаются, как и ожидалось, каждое электронное письмо в новой строке:

Входящие 2019-10-15, Джек, Новая информация по электронной почте

Входящие 2019-10-16, Том, привет

Входящие 2019-10-17, анна, Тестовое письмо

Когда я пытаюсь записать это в CSV, используя приведенный ниже код:

with open("C:/mail_export.csv",'w',newline='\n',encoding="utf-8") as f:
    for item in inbox_folder.all().order_by('-datetime_received'):
        data=("Inbox", item.datetime_received, item.sender, item.subject)
        f.write(str(data))

Я получил всю информацию в одной длинной строке, и я не могу ее сохранить, поэтому каждый элемент начинается с новой строки. Теперь выглядит так:

Входящие 2019-10-15, jack, Новая информация об электронной почте Входящие 2019-10-16, tom, Hello Inbox 2019-10-17, anna, Тестовое письмо

Что я делаю неправильно? Как написать это так же, как отображается при печати? Любая помощь будет очень высоко ценится!


person Jack84    schedule 16.10.2019    source источник


Ответы (1)


Думаю, вы очень близки, я не могу воспроизвести вашу проблему. Но я бы предложил вам добавить \n в функцию записи, потому что только тогда есть возможность кода записать его в новую строку. Основываясь на вашем выводе, все остальные шаги выполняются правильно.

person Manoj Ravi    schedule 16.10.2019
comment
Спасибо, что указали мне правильное направление. Такой маленький и простой код сделал свое дело. Еще раз спасибо за помощь! - person Jack84; 16.10.2019