我可以使用ping命令并使用以下行保存输出:
command = os.system('ping 127.0.0.1 > new.txt')
但是每次运行脚本时,文本文件都会被覆盖,所以我只保存了最后一次ping。我已经查看了日志记录但无法找到一种方法将ping请求的输出保存到文本文件中而无需过度编写。
我试过了:
logging.debug(command = os.system('ping 127.0.0.1'))
但这引发了一个错误:debug()至少需要1个参数(给定0)
任何帮助将不胜感激,谢谢!
答案 0 :(得分:2)
您可以获得subprocess.check_output的结果并将其写入文件:
import subprocess
result = subprocess.check_output(['ping', '127.0.0.1'])
with open("new.txt", "a") as myfile:
myfile.write(result)
答案 1 :(得分:1)
如果您坚持使用os.system
,那么只需使用>>
重定向:
command = os.system('ping 127.0.0.1 >> new.txt')
这会将新数据附加到new.txt
而不是覆盖它。
另一种解决方案是使用subprocess
模块并手动管理文件处理程序。这有利于跳过shell(它更快,在某些情况下更安全):
import subprocess
out = open('new.txt', 'a')
subprocess.call(['ping', '127.0.0.1'], stdout = out)
out.close()
请注意,您可以使用stdout
执行其他操作。例如,将其保存为字符串。