老实说,我只是不理解“非零”状态的行话,无法真正解释“帮助”页面上发生的事情或这意味着什么(甚至没有定义)。使用python调用其他脚本的示例有哪些
subprocess.callsubprocess.check_outputsubprocess.popen
真的彼此不一样吗?
您什么时候会使用这两种方法,这些方法的明确细节是什么?如果我想要简单的操作系统调用,我应该改为使用os.system吗?

最佳答案

主要区别在于,虽然popen是一个非阻塞函数(意味着您可以在不等待调用完成的情况下继续执行程序),但callcheck_output都是阻塞函数。
另一个区别是它们返回的内容:
popen返回一个Popen object
call返回returncode属性。
check_output返回命令执行的输出。
实际上,方法callcheck_output是使用popen阻塞Popen object的包装器。
例如,可以通过调用returncode来获取Popen.returncode()属性。

关于python - check_call check_output调用和子进程模块中的Popen方法有什么实际区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38088631/

10-16 15:20