Вот пример проблемы, с которой я сталкиваюсь. Я использую расширения Python Win32 для доступа к почтовому ящику Outlook и получения сообщений.
Ниже приведен скрипт, который должен записать «hello world» в текстовый файл. Мне нужно получить несколько сообщений из почтового ящика Outlook, и я заметил кое-что странное. После того, как я один раз подключился к почтовому ящику, я больше не могу ничего печатать в файл. Вот урезанная версия, показывающая проблему:
#!/usr/bin/env python
from win32com.client import Dispatch
fh = open('foo.txt', 'w')
fh.write('hello ')
fh.close()
session = Dispatch('MAPI.session')
session.Logon('','',0,1,0,0,'exchange.foo.com\nprodreport');
session.Logoff()
fh = open('foo.txt', 'a')
fh.write('world')
fh.close()
Если я не присоединяюсь к почтовому ящику и не комментирую следующие строки, очевидно, он работает нормально:
session = Dispatch('MAPI.session')
session.Logon('','',0,1,0,0,'exchange.foo.com\ncorey');
session.Logoff()
Почему открытие сеанса почтового ящика в середине моего скрипта блокирует дальнейший вывод файла? Любые идеи? (остальные операции не блокируются, только этот файловый ввод/вывод asfaik)