Форум сайта python.su
Добрый день, уважаемые знатоки.
Я хочу сделать приложение, которое бы забирала некоторую информацию с google почты и выводило не в cmd, а в красивое окошечко.
Для этого мне надо PyQT, ну и сам Py =)
Откровенно говоря, я не силён в Linux ОС и работаю на Win 7, привычнее для глазу.
Много геморроя повстречал начиная с кодировок, заканчивая PyQT.
От воды к ясности:
Я собираю всю информацию, обработанную в Список, так как в него удобно вкладывать ещё списки.
Но при выводе в cmd появляется черте что…
Читал статью на хабрахабр, как кто-то боролся с кодировкой не очень помогло, точнее я не понял что там происходит
Вообщем оставил всё как есть, начал изучать PyQT перерыл много сайтов на русском языке ничего толкового не нашёл…
Примеры слишком примитивные, а для моей программы не понятно, что куда и как…
И я задумался…
К чему я виду, раз у меня уже при выводе на экран в cmd print list, допустим так, выводит корокозябру, напоминаю, там вложена дважды, то у меня явно будут проблемы и с PyQT…
Как правильней сделать, чтоб собрать информацию и не запороть вывод - использовать SQLLite (на днях прочитал про него) или же список или же как-то по другому…
Хотелось бы видеть ввиде таблицы…
PS Знатоки и новички не обессудьте, если что-то не так написал… Код выкладывать не хочу - стыдно за мой го*но код, но если попросите - выложу…
Спасибо за понимание и за трату вашего времени ко мне.
Отредактировано (Июль 18, 2011 17:30:50)
Офлайн
FAQ'a по использованию поисковых машин — не будет.
Офлайн
http://www.python.org/doc/
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/index.html
По кодировкам это поможет:
http://wiki.python.org/moin/PrintFails
Вообще, для целей PyQt все более смотрю в сторону python3.
Офлайн
Спасибо kostafey, дал бы +1, но не вижу где.
Решился на словари все же.
Но тут загвоздка.
Знатоки выручайте.
...
BigBoxMessage = dict();
Ms = ["MsId ", "MsFrom ", "MsSubject ", "MsWhere ", "MsFiles "]
for num_first in Status_first[0].split():
BigBoxMessage[Ms[0] + str(num_first + 1)] = msg_first.get('Message-ID')
...
Офлайн
не привели код, который указывал бы на то, что такое Status_first
хотя и так догадатся можно…
Status_first.split() - это строки
значит интерпритатор ругается на num_first + 1 (строка + инт).
и вообще, код этой строки получиается замуторным:
BigBoxMessage[Ms[0] + str(num_first + 1)] = msg_first.get('Message-ID')
BigBoxMessage[Ms[0] + str(int(num_first) + 1))] = msg_first.get('Message-ID')
Отредактировано (Июль 24, 2011 18:50:21)
Офлайн
...
for num_first in Status_first[0].split():
BigBoxMessage[Ms[0] + str(num_first + 1)] = msg_first.get('Message-ID')
#num_first + 1 судя по коду выше в num_first строка, а к ней пытаетесь прибавить единицу
Офлайн
МАГИЯ!!!! )) Заработало!)
Бафушее спасибо!
Ну не ищу легких путей для интерпритатора)) Пускай тоже подумает!)
Офлайн
Возвращаюсь к кодировкам… Я видел тему, но она не в моей теме почти.
Я знаю, что в Пингвине стандартная кодировка Unicode. В Винде раздвоение личности, если не ошибаюсь в приложения по стандарту cp1251, а в cmd cp866, в принципе по начитанному разницы не должно быть… Но она есть. А про Маки и Яблочки я хз, что там.
Хочу, чтоб и в Win и в Unix выводилось в приложении читаемый для людей русский язык =) С англ, вроде бы нет проблем.
Начнём. Вот получаем няху.
>>> j = "=?KOI8-R?B?UmU6IDQ30SDawcTB3sE=?=" # Токая няшка в Теме сообщения
>>> from email.header import decode_header # знакомый дал мне наводку на вот это. Чтож плохого не посоветует.
>>> a = decode_header(j) # Ул магия и....
>>> print a
[('Re: 47\xd1 \xda\xc1\xc4\xc1\xde\xc1', 'koi8-r')] # Тада =) Мы знаем какая кодировка.
>>> print a[0][0]
Re: 47С ЪБДБЮБ # Тут фейл с большой буквы. Но ничего.
>>> b = a[0][0].decode(a[0][1]).encode("cp1251") # Ещё немного ул магии
>>> b
'Re: 47\xff \xe7\xe0\xe4\xe0\xf7\xe0'
>>> print b
Re: 47я задача # И о чудо, мы видим результат.
Отредактировано (Июль 25, 2011 13:53:20)
Офлайн