📅  最后修改于: 2023-12-03 14:46:04.836000             🧑  作者: Mango
如果你需要运行一个子进程并同时获取其输出,那么Python的subprocess模块就是你所需要的。
如果你只需要在子进程运行结束后获取其输出,可以使用subprocess.check_output
函数来运行子进程并获取其输出。
import subprocess
output = subprocess.check_output(['ls', '-l'])
print(output.decode('utf-8'))
该代码会运行ls -l
命令并获取其输出。decode
函数用于将输出从字节流转换为字符串。
如果你需要在子进程运行期间获取输出,可以使用subprocess.Popen
函数来创建一个子进程。同时,使用communicate
方法与stdout
管道来异步获取输出。
import subprocess
process = subprocess.Popen(['ping', '-c', '4', '127.0.0.1'], stdout=subprocess.PIPE)
while True:
output = process.stdout.readline()
if output == '' and process.poll() is not None:
break
if output:
print(output.strip())
该代码会创建一个ping命令的子进程,并异步获取其输出。poll
函数用于检查子进程是否已经结束,strip
函数用于去除输出中的换行符。