Запись в файл в течение бесконечного времени

1

Мне нужно писать в текстовом файле в течение бесконечного времени. Но это не запись, и если я не использую бесконечное время, пока оно работает. Что я должен изменить? Моя цель состоит в том, чтобы пропинговать разные ip бесконечное время, и когда пинг не удается, он записывается в файл с указанием времени и даты.

Я пробовал код без while True и он работает. Я думаю, что код должен быть остановлен, чтобы написать, но мы можем сделать без остановки?

import os
import datetime

fichier = open("log.txt", "a")
date = datetime.datetime.now()

hostnames = [
    '192.168.1.1',
    '192.168.1.2',
    '192.168.1.3',
]
while True :
    for hostname in hostnames:
        ping = os.system(" Ping " + str(hostname))
        if ping == 1:
            print("DOWN")
            fichier.write(str(date) + "    " + str(hostname) + '\n' + '\n')
        else:
            print("UP")

Я ожидаю вывод, когда он потерпел неудачу с отметкой Дата/Время и IP-адрес

Показать ещё 2 комментария
Теги:
file
while-loop
ping

1 ответ

1
Лучший ответ

Суммируя все ответы в одном:

try:
 with open('log.txt', 'a') as fichier:
   while True:
       for hostname in hostnames:
           ping = os.system(" Ping " + str(hostname))
           if ping == 1:
           print("DOWN")
           fichier.flush()
           fichier.write(str(date) + "    " + str(hostname) + '\n' + '\n')
       else:
           print("UP")
except KeyboardInterrupt:
     print("Done!") 
  • 0
    Это вряд ли будет вести себя иначе, чем текущий код OP. Вы не сбрасываете в файл.
  • 0
    Так-то лучше. Теперь мы открываем и закрываем файл только один раз. Спасибо за улучшение!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню