[Python] вопрос/ответ.

Discussion in 'Python' started by De-visible, 21 Jan 2009.

  1. boris_blade

    boris_blade New Member

    Joined:
    28 Sep 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Всем привет.
    есть такой вопрос.
    У меня есть некий класс, который передает веб-серверу два параметра.

    ml = Mail('mail', 'site.com')
    Так вот вопрос как передавать классу список
    вида имя@домен?
     
  2. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Code:
    ml = Mail(["mail@domain", "mail2@domain"])
    
    М ?
     
  3. boris_blade

    boris_blade New Member

    Joined:
    28 Sep 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    нет так не пойдет.
    Емейлов может быть тысяча.
    нужно передавать классу их именно из файла
     
  4. Byte_

    Byte_ Elder - Старейшина

    Joined:
    7 Sep 2008
    Messages:
    143
    Likes Received:
    34
    Reputations:
    2
    boris_blade, не совсем понятно, ты хочешь из файла взять список адресов?
    Code:
    mails = []
    def readlist():
    	file = open('mails.txt','r')
    	for line in file:
    		line = line.replace("\n","")
    		line = line.replace("\r","")
    		mails.append(line)
    eadlist()
    
    я это решал так.
     
  5. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    ...
    В моем примере в класс передавался именно список.
    Пожалуйста, на будущее будьте добры задавать вопросы своими словами, если путаетесь в терминологии.

    По сути - в вашем случае в класс можно передавать хэндлер на файл, или создавать динамическую очередь.

    В первом случае это будет выглядеть как
    ml = Mail(open("mails.txt"))
    Только обратите внимание, что не нужно вызывать метод readlines(). Второй вариант сложнее в реализации, это-передавать в класс обьект типа Queue, который будет автоматически наполняться отдельным потоком до определенного значения (создать что-то типа буфера). Из собственного опыта могу сказать что второй вариант будет быстрее, но остановить его сложнее, если вас интересует управление очередью.

    P.S. Тысяча имейлов это так, чисто поорать. Задумываться об этом стоит в том случае, если у вас счет идет на миллионы/планируется запускать в таких условиях, что кол-во памяти ограничено.
     
    #665 login999, 25 May 2010
    Last edited: 25 May 2010
  6. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Code:
    mails = [line.strip() for line in open("mails.txt")]
    
     
  7. Byte_

    Byte_ Elder - Старейшина

    Joined:
    7 Sep 2008
    Messages:
    143
    Likes Received:
    34
    Reputations:
    2
    login999, красиво =)
     
    2 people like this.
  8. boris_blade

    boris_blade New Member

    Joined:
    28 Sep 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    login999

    Благодарствую.
    Утром попробую сделать так.
     
  9. h00lyshit!

    h00lyshit! [From Nobody To Root]

    Joined:
    10 Sep 2009
    Messages:
    289
    Likes Received:
    290
    Reputations:
    195
    Никак не получается запустить парсер (после запуска выкидывает из консоли), в скрипте реализован GUI. Может быть для него нужно качать отдельно какие то библиотеки? Интерпретатор 2 ветки (2.6).
    С питоном сталкиваюсь впервые, так что сильно не ругать, если вопрос глупый.
    Исходник: http://dumpz.org/9729/
     
  10. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    О_о оно кому-то нужно еще :D
    Во второй строчке замени utf-8 на cp1251.
     
    4 people like this.
  11. boris_blade

    boris_blade New Member

    Joined:
    28 Sep 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Пробую так.
    Но оно ругается на количество аргументов

     
  12. boris_blade

    boris_blade New Member

    Joined:
    28 Sep 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Собственно разобрался сам.
    Решил с помощью цикла.
     
  13. myaso

    myaso New Member

    Joined:
    6 Jun 2010
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    делть
     
    #673 myaso, 7 Jun 2010
    Last edited: 7 Jun 2010
  14. TikTik

    TikTik Member

    Joined:
    20 Feb 2009
    Messages:
    241
    Likes Received:
    12
    Reputations:
    2
    Ты что
    Класс login999 спасибо для новичка это просто находка !!!

    Всё подробненько супер !
     
    #674 TikTik, 7 Jun 2010
    Last edited: 7 Jun 2010
  15. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Сделал ^.^
     
    #675 login999, 10 Jun 2010
    Last edited: 10 Jun 2010
  16. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Да я как код увидел то щас вообще теряюсь, как оно работало О_о.
     
    2 people like this.
  17. Mac Sanky

    Mac Sanky New Member

    Joined:
    21 May 2009
    Messages:
    0
    Likes Received:
    3
    Reputations:
    1
    Ребята помогите разобраться со скриптом
    наешл его в просторах интернета и нужно определить под какую версию питона он сделан и какие доп библиотеки нужны
    http://slil.ru/29387913
     
  18. _iks_

    _iks_ Member

    Joined:
    21 Feb 2009
    Messages:
    60
    Likes Received:
    59
    Reputations:
    61
    Из нестандартных нужен pycurl(http://pycurl.sourceforge.net/).
     
    1 person likes this.
  19. Mac Sanky

    Mac Sanky New Member

    Joined:
    21 May 2009
    Messages:
    0
    Likes Received:
    3
    Reputations:
    1
    а возможно в этот же скрипт добавить проверку на домен? что игнорировать все кроме mail.ru bk.ru inbox.ru list.ru
     
  20. _iks_

    _iks_ Member

    Joined:
    21 Feb 2009
    Messages:
    60
    Likes Received:
    59
    Reputations:
    61
    Между 56 и 57 строкой вставь следующее
    Code:
    if domain not in ['mail.ru', 'bk.ru', 'list.ru', 'inbox.ru']:
        continue
    
     
    1 person likes this.