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

TrastMan

Постоялец
Регистрация
13 Ноя 2007
Сообщения
117
Реакции
4
print addr[0] выводит в консоли элементы массива построчно, но перенаправить вывод в фаил не выходит. Либо только первый элемент, либо символы как при проблеме с кодировкой. Все значения числовые.
 
print addr[0] выводит в консоли элементы массива построчно, но перенаправить вывод в фаил не выходит. Либо только первый элемент, либо символы как при проблеме с кодировкой. Все значения числовые.
PHP:
for i in addr:
    f3 = open(r'C:\script\rez.txt', "a")
    f3.write(i)
    f3.close()
 
PHP:
for i in addr:
    f3 = open(r'C:\script\rez.txt', "a")
    f3.write(i)
    f3.close()
Во, спасиб:) Только у меня выходит два переноса после первого значения, а все последующие идут в одну строку. Нужно построчно.
 
Во, спасиб:) Только у меня выходит два переноса после первого значения, а все последующие идут в одну строку. Нужно построчно.
PHP:
for i in addr:
    data = '{0}\n'.format(i)
    f3 = open(r'C:\script\rez.txt', "a")
    f3.write(data)
    f3.close()
 
А реально писать в файл только униальные значения? Без дублей.
 
А реально писать в файл только униальные значения? Без дублей.
реально если ты перед этим почистишь в дубликаты в массиве.
выложи кусок своего списка для примера постараюсь помочь.
 
Список это прокси в формате ip : port
Код:
127.0.0.1:80
127.0.0.2:123
...
127.0.0.N:789

Есть рабочий вариант с удалением дублей из файла и переписыванием в новый:

Код:
#! /usr/bin/env python

input = open('list.txt', 'r')
output = open('out.txt', 'w')
linesarray = input.readlines()
input.close()
seen = []
for i in range(len(linesarray)):
    if seen.count(linesarray[i]) == 0:
        seen.append(linesarray[i])
        output.write(linesarray[i])

output.close()

Но с совмещением незаладилось, а желание упростить код есть.
 
PHP:
proxy_open = open(r'proxy.txt').read() #открываем и читаем файл
proxy_list =  proxy_open.split('\n') #создаем список (массив)
noduplicate_list = list(set(proxy_list)) #удаление дубликатов
data = '\n'.join(noduplicate_list) #создаем из списка строки
f3 = open(r'proxy_rez.txt', "a") #открываем файл
f3.write(data + '\n') #записываем данные
f3.close() #закрываем файл
 
Немного не то. Я сначала записываю список в файл:

Код:
for i in addr:
    data = '{0}\n'.format(i)
    f3 = open(r'C:\script\rez.txt', "a")
    f3.write(data)
    f3.close()

Там уже есть список и к нему добавляются новые прокси, без проверки уникальности.

Потом снова открываю файл, чекаю дубли и записываю уникальный список уже в новый фаил. Попытка совместить эти действия, т.е. сначала открыть файл с существующим списком, проверить новую порцию проксей на наличие в rez.txt и дописать в конец только уникальные прокси не увенчалась успехом :(
 
не совсем мне понятна задача. а если открыть два файла, из них создать единый список. проверить на дубликаты и перезаписать файл ?
 
Назад
Сверху