python3 linxu 运行shell命令 阻塞与非阻塞问题

这里用到subprocess内置库

subprocess.check_output() 与 subprocess.Popen() 一个是阻塞另一个是非阻塞

主要讲subprocess.Popen()


p = Popen(shell_str, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)

如果不加shell=True,shell_str要写成list或者tuple类型

p.wait()   如果0是正常,1是有异常

p.stdin.read()

p.stdout.read()

p.stderr.read()

stdin,  stdout, stderr 分别是标准输出, 正常输出, 错误输出 

例子:

from subprocessimport *

p = Popen(shell_str.split(' '), stdin=PIPE, stdout=PIPE, stderr=PIPE)

p_statuscode = p.wait()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。