1. Начата процедура восстановления социальных групп. Лидерам старых и новых групп обязательно ознакомиться с регламентом проведения работ.

[Python] Перенаправить вывод в файл

Тема в разделе 'Другие языки', создана пользователем TrastMan, 16 авг 2011.

  1. У меня на данный момент "proxies" имеет вид:
    Код:
    [('socks4', '127.0.0.1:123'), ('socks5', '127.0.0.2:345'), ('socks4', '127.0.0.3:315')]
    и тип list

    Код:
    for proxy in proxies:
        data = '{0}\n'.format(proxy[1])
    приводит это к нормальному виду, список ip : port
    и type 'str'...

    А просто proxies[1] вместо proxies выдает
    Код:
    ('socks4', '127.0.0.1:123')
  2. в файл ты тоже записуешь socks4,socks5 ? покажи пример тех данных которые хранятся в файле ?
  3. Нет, в файле список:
    Код:
    127.0.0.1:80
    127.0.0.2:123
    ...
    127.0.0.N:789
    и такой код:

    Код:
    for proxy in proxies:
        data = '{0}\n'.format(proxy[1])
        f3 = open(r'socks5.txt', "a")
        f3.write(data)
        f3.close()
    каждый раз дописывает новые прокси в конец списка.
  4. В общем socks4/socks5 я убрал, теперь proxies имеет вид:
    Код:
    [('127.0.0.1:123'), ('127.0.0.2:345'), ('127.0.0.3:315')]
    Файл с выводом в аттаче. Там видно, что дубли не проверяются Посмотреть вложение socks5.txt

    И есть странные пробелы...

    Код:
    Код:
    list_new_proxy = proxies
    print proxies
    proxy_open = open(r'socks5.txt').read()
    list_file_proxy =  proxy_open.split('\n')
    all_proxy_list = list_file_proxy + list_new_proxy
    noduplicate_list = list(set(all_proxy_list))
    data = '\n'.join(noduplicate_list)  
    f3 = open(r'socks5.txt', "a")
    f3.write(data + '\n')
    f3.close()  
    Код:
    print proxies
    выдает 12 прокси, а в файл добавлено несколько десятков. Правда часть из них дубли.
    Чет совсем не понятно, как так получается.
  5. PHP:

    def unpack_proxy_list
    (proxies,save_file):
        for 
    proxy in proxies:
            
    data '{0}\n'.format(proxy)
            
    f3 open(save_file"a")
            
    f3.write(data.strip() + '\n')
            
    f3.close()


    def noduble_list(save_file):
        
    proxy_open open(save_file).read()
        
    list_file_proxy =  proxy_open.split('\n')
        
    noduplicate_list = list(set(list_file_proxy))
        
    data '\n'.join(noduplicate_list)
        
    f3 open(save_file"w")
        
    f3.write(data.strip() + '\n')
        
    f3.close()

    you_file_proxy r'E:\Work\Projects\Python\socks5.txt'

    unpack_proxy_list(proxies,you_file_proxy)
    noduble_list(you_file_proxy)
    TrastMan нравится это.
  6. Не в курсе, что такое
    Код:
    ValueError: too many values to unpack
    ?
    Думал вписать речек после удаления дублей, там нужно разбить лист split'ом:
    PHP:
    def unpack_proxy_list(proxies,save_file):
        for 
    proxy in proxies:
            
    data '{0}\n'.format(proxy)
            
    f3 open(save_file"a")
            
    f3.write(data.strip() + '\n')
            
    f3.close()


    def noduble_list(save_file):
        
    proxy_open open(save_file).read()
        
    list_file_proxy =  proxy_open.split('\n')
        
    noduplicate_list = list(set(list_file_proxy))
        
    data '\n'.join(noduplicate_list)
        
    ipproxy_port data.split(":")
        
    proxy_port int(proxy_port)
        
    f3 open(save_file"w")
        
    f3.write(data.strip() + '\n')
        
    f3.close()

    you_file_proxy r'E:\Work\Projects\Python\socks5.txt'

    unpack_proxy_list(proxies,you_file_proxy)
    noduble_list(you_file_proxy
    Это порождает ошибку
  7. Еще такой вопрос. Реально

    PHP:
    for i in addr:
        
    data '{0}\n'.format(i)
        
    f3 open(r'C:\script\rez.txt'"a")
        
    f3.write(data)
        
    f3.close()  
    очистить "rez.txt" перед записью. Чет читаю маны по работе с файлами, но на этот счет нет ничего.
  8. PHP:

        ip
    proxy_port data.split(":"
        
    proxy_port int(proxy_port
    что ты хочешь сделать этими строчками ?
    PHP:

    f3 
    open(r'C:\script\rez.txt'"a"
    f3 open(r'C:\script\rez.txt'"w"
  9. Там разбиваются строки на ip и port, проверяется чтобы порт был целочисленным значением. Честно не совсем понимаю что это дает, но в данном скрипте так делается перед проверкой прокси.