def extract(msg,savedir,marker=''): if marker: marker=marker+'-' fp = open(msg) msg = email.message_from_file(fp) fp.close() for part in msg.walk(): if part.get_content_maintype() == 'multipart': continue if part.get('Content-Disposition') is None: continue filename = part.get_filename() if not(filename): continue print ' '+filename print part.get_content_charset() filename,enc=decode_header(filename)[0] if enc: filename=filename.decode(enc) filename=marker+filename fp = open(os.path.join(savedir, filename), 'wb') fp.write(part.get_payload(decode=1)) fp.close
Собственно вопрос можно как-то определить что имя уже преобразовано или кодировку вложения? part.get_charset() - ничего не возвращает. Нужно направление куда рыть.
Строчка # -*- coding: utf-8 -*- вверху есть, но по идее она не должна влиять…
ЗЫ. С питоном всего полторы недели, и до изучения классов еще не дошел, так что в исходники читаются пока тяжко.