老实说,我只是不理解“非零”状态的行话,无法真正解释“帮助”页面上发生的事情或这意味着什么(甚至没有定义)。使用python调用其他脚本的示例有哪些subprocess.callsubprocess.check_outputsubprocess.popen
真的彼此不一样吗?
您什么时候会使用这两种方法,这些方法的明确细节是什么?如果我想要简单的操作系统调用,我应该改为使用os.system吗?
最佳答案
主要区别在于,虽然popen
是一个非阻塞函数(意味着您可以在不等待调用完成的情况下继续执行程序),但call
和check_output
都是阻塞函数。
另一个区别是它们返回的内容:popen
返回一个Popen object
。call
返回returncode
属性。check_output
返回命令执行的输出。
实际上,方法call
和check_output
是使用popen
阻塞Popen object
的包装器。
例如,可以通过调用returncode
来获取Popen.returncode()
属性。
关于python - check_call check_output调用和子进程模块中的Popen方法有什么实际区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38088631/