在无限期间写入文件
Writing to file during infinite while
我需要在一个无限的时间里写一个txt文件。但它不是写作,如果我在它工作时不使用无限。
我必须改变什么?
我的目标是无限期 ping 不同的 ip,当 ping 失败时,它会用时间和日期写在文件中
我已经尝试了没有 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")
我希望输出失败时带有标记 Date/Time 和 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!")
我需要在一个无限的时间里写一个txt文件。但它不是写作,如果我在它工作时不使用无限。 我必须改变什么? 我的目标是无限期 ping 不同的 ip,当 ping 失败时,它会用时间和日期写在文件中
我已经尝试了没有 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")
我希望输出失败时带有标记 Date/Time 和 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!")