我正在编写一个脚本,使用subprocess. Popen获取netstat状态。
cmd = 'netstat -nlpt | grep "java" | grep -v tcp6'
result1 = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, universal_newlines=True )
stdout, stderr=result1.communicate()
for line in iter(result1.stdout):
print(line)
字符串
上面给出了ValueError:关闭文件上的I/O操作。。有没有办法得到直播输出。在live output from subprocess command中,他们使用writen和readlines在这里,我只需要打印实时状态,请有人帮助我解决这个问题。谢谢你,谢谢
1条答案
按热度按时间v9tzhpje1#
你得到这个错误是因为
stdout
文件描述符在你想要迭代它的时候已经被关闭了。我写了一个工作版本。该实现可以实时地提供所调用的命令的输出。验证码:
字符串
输出:
型