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