process = subprocessPopeniperf3 -c 38479696-p11111-i1 stdout=subprocessPIPE universal_newlines=True以上的iperf3的运行结果不能实时逐行输出请修改
您可以使用stdout=subprocess.PIPE参数将子进程的输出管道连接到subprocess.PIPE对象,然后使用communicate()方法获取输出并逐行解析。
以下是修改后的代码示例:
import subprocess
process = subprocess.Popen(['iperf3', '-c', '38.47.96.96', '-p', '11111', '-i', '1'], stdout=subprocess.PIPE, universal_newlines=True)
for line in iter(process.stdout.readline, ''):
# 处理每一行输出
print(line.strip())
process.stdout.close()
process.wait()
在上面的示例中,我们使用iter(process.stdout.readline, '')来迭代子进程的输出,直到遇到空行为止。然后,您可以根据需要处理每一行输出的逻辑。
原文地址: http://www.cveoy.top/t/topic/iSLb 著作权归作者所有。请勿转载和采集!