如何使用 python 将 cmd 查询的输出提取到文本文件
How to extract the output of a cmd query to a textfile using python
我有这个简单的 python 代码;
import os
os.system('cmd /k "ping google.com"')
在 运行 代码之后,命令 window 显示以下结果;
Pinging google.com [216.58.223.238] with 32 bytes of data:
Reply from 216.58.223.238: bytes=32 time=57ms TTL=120
Reply from 216.58.223.238: bytes=32 time=26ms TTL=120
Reply from 216.58.223.238: bytes=32 time=14ms TTL=120
Reply from 216.58.223.238: bytes=32 time=9ms TTL=120
Ping statistics for 216.58.223.238:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 9ms, Maximum = 57ms, Average = 26ms
如何从 cmd window 复制此代码并使用 python 保存到文本文件?
我认为最简单的解决方案是将输出转发到文件中。
ping -n 20 {ip_addr} >output.txt
(做“>>”追加而不是覆盖)
此外,您应该使用 subprocess.Popen()
而不是 os.system()
作为良好习惯。
然后您可以像往常一样打开文本文件并执行您想要的操作。\
编辑
如果您在命令行上执行 ls > output.txt
,您通常在终端中看到的文本将写入“>”运算符之后的文件。做 subprocess.Popen("ping -n 20 {} >> output.txt".format(ip),shell=True)
本质上是一样的。 (我在这种情况下使用 >>
,不是每次都用最新的输出覆盖文件,而是附加新内容)
import subprocess
with open ('ip-source.txt') as file:
test = file.read()
test = test.splitlines()
for ip in test:
subprocess.Popen('ping -n 20 {} >> ping_output.txt'.format(ip),shell=True)
我希望这是您正在寻找的解决方案,我理解正确。
此致,拉斯
我有这个简单的 python 代码;
import os
os.system('cmd /k "ping google.com"')
在 运行 代码之后,命令 window 显示以下结果;
Pinging google.com [216.58.223.238] with 32 bytes of data:
Reply from 216.58.223.238: bytes=32 time=57ms TTL=120
Reply from 216.58.223.238: bytes=32 time=26ms TTL=120
Reply from 216.58.223.238: bytes=32 time=14ms TTL=120
Reply from 216.58.223.238: bytes=32 time=9ms TTL=120
Ping statistics for 216.58.223.238:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 9ms, Maximum = 57ms, Average = 26ms
如何从 cmd window 复制此代码并使用 python 保存到文本文件?
我认为最简单的解决方案是将输出转发到文件中。
ping -n 20 {ip_addr} >output.txt
(做“>>”追加而不是覆盖)
此外,您应该使用 subprocess.Popen()
而不是 os.system()
作为良好习惯。
然后您可以像往常一样打开文本文件并执行您想要的操作。\
编辑
如果您在命令行上执行 ls > output.txt
,您通常在终端中看到的文本将写入“>”运算符之后的文件。做 subprocess.Popen("ping -n 20 {} >> output.txt".format(ip),shell=True)
本质上是一样的。 (我在这种情况下使用 >>
,不是每次都用最新的输出覆盖文件,而是附加新内容)
import subprocess
with open ('ip-source.txt') as file:
test = file.read()
test = test.splitlines()
for ip in test:
subprocess.Popen('ping -n 20 {} >> ping_output.txt'.format(ip),shell=True)
我希望这是您正在寻找的解决方案,我理解正确。
此致,拉斯