Запись в файл в течение бесконечного времени - PullRequest
0 голосов
/ 09 января 2019

Мне нужно писать в текстовом файле в течение бесконечного времени. Но это не запись, и если я не использую бесконечность, пока она работает. Что я должен изменить? Моя цель состоит в том, чтобы пропинговать разные 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-адрес

1 Ответ

0 голосов
/ 09 января 2019

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

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!") 
...