Larinn
@Larinn
Люблю пельмени

Как сохранить полученные данные в файл?

Есть скрипт, который должен сохранять в новом файле список доменов и их IP в формате "domen [IP]" . Проблема в том, что при сохранении в файл попадает только один элемент из первоначального файла со списком доменов.

import socket

file = 'urldict.txt'
f = open(file, 'r')
lines = f.readlines()
f.close()
for i in lines:
    host = i.strip()
    newfile = open("newfile.txt", "w")
    save = newfile.write("%s [%s]" % (host, socket.gethostbyname(host)))


Результат должен быть таким, как при простом выводе в интерактивной консоли (приведен ниже)

iLMSD2eSwsc.jpg
  • Вопрос задан
  • 192 просмотра
Решения вопроса 2
Sly_tom_cat
@Sly_tom_cat
.
Я бы еще посоветовал не делать сначала чтение в буфер потом обработку и запись - ведь обработка построчная - строку прочитал, обработал, записал и так пока есть что читать - алгоритм не вырубит вам комп когда случайно ему на вход подсунут файл размером в пару сотен гигабайт.

import socket
with open('urldict.txt', "rt") as file_in:
    with open("newfile.txt", "w") as file_out:
        for i in file_in:
             host = i.strip()
             file_out.write("%s [%s]" % (host, socket.gethostbyname(host)))
Ответ написан
Комментировать
GoooodBoy
@GoooodBoy
Вынеси открытие файла из цикла.

with open("newfile.txt", "w") as file:
    for i in lines:
         host = i.strip()
         save = file.write("%s [%s]" % (host, socket.gethostbyname(host)))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы