2024-09-28 03:15:39 发布
网友
我想运行命令并实时捕获stdout:
import subprocess import shlex cmd='my command' args=shlex.split(cmd) com=subprocess.Popen(args,stdout=subprocess.PIPE,stderr=subprocess.STDOUT) com.stdout.flush() for line in com.stdout.read() print line
但是没有什么是输出。。。在
read()读取直到EOF(这通常在子进程退出之前不会发生),以获得更多的“实时”至少通过循环中的readline()按行读取
read()
EOF
readline()
任何连接到文件描述符的对象都可以传递给subprocess.Popen,包括sys.stdout!在
subprocess.Popen
sys.stdout
com=subprocess.Popen(args,stdout=sys.stdout,stderr=sys.stderr)
请注意,这在某些pythonshell中可能不起作用。在
read()
读取直到EOF
(这通常在子进程退出之前不会发生),以获得更多的“实时”至少通过循环中的readline()
按行读取任何连接到文件描述符的对象都可以传递给
subprocess.Popen
,包括sys.stdout
!在请注意,这在某些pythonshell中可能不起作用。在
相关问题 更多 >
编程相关推荐