Этот вопрос может оказаться действительно глупым, но вот он. Следующая инструкция вызывает исключение для определенного сообщения электронной почты:
File "/Users/me/tools/maildir-deduplicate/maildir_deduplicate/mail.py", line 104, in body_lines
_, _, body = self.message.as_string().partition("\n\n")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 621: ordinal not in range(128)
Если я запускаю под PDB и вручную проверяю его в приглашении, исключение не выдается и body
правильно установлен.
> /Users/me/tools/maildir-deduplicate/maildir_deduplicate/mail.py(105)body_lines()
-> _, _, body = self.message.as_string().partition("\n\n")
(Pdb) _, _, body = self.message.as_string().partition("\n\n")
Но если я нажму следующую строку, все равно будет выдано исключение:
(Pdb) n
UnicodeDecodeError: UnicodeD...ge(128)')
> /Users/me/tools/maildir-deduplicate/maildir_deduplicate/mail.py(105)body_lines()
-> _, _, body = self.message.as_string().partition("\n\n")
Если я нарушу оператор, исключение выдается при вызове partition()
.
File "/Users/me/tools/maildir-deduplicate/maildir_deduplicate/mail.py", line 106, in body_lines
body = self.message.as_string()
_, _, body = body.partition("\n\n")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 621: ordinal not in range(128)
Та же история работает под pdb
: исключение будет выдано, если я нажму n
, но не если я введу _, _, body = body.partition("\n\n")
в приглашении.
Есть идеи, что может быть причиной этого?