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

У меня на данный момент "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')
 
в файл ты тоже записуешь socks4,socks5 ? покажи пример тех данных которые хранятся в файле ?
 
Нет, в файле список:
Код:
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()

каждый раз дописывает новые прокси в конец списка.
 
В общем 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 прокси, а в файл добавлено несколько десятков. Правда часть из них дубли.
Чет совсем не понятно, как так получается.
 
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)
 
Не в курсе, что такое
Код:
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)
    ip, proxy_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)
Это порождает ошибку
 
Еще такой вопрос. Реально

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" перед записью. Чет читаю маны по работе с файлами, но на этот счет нет ничего.
 
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")
 
PHP:
    ip, proxy_port = data.split(":") 
    proxy_port = int(proxy_port)
что ты хочешь сделать этими строчками ?
Там разбиваются строки на ip и port, проверяется чтобы порт был целочисленным значением. Честно не совсем понимаю что это дает, но в данном скрипте так делается перед проверкой прокси.
 
Назад
Сверху