gpt4 book ai didi

python - Ruby 相当于 Python 的 subprocess.check_call/check_output

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:37 25 4
gpt4 key购买 nike

Python 提供了两个方便的函数来调用可能会失败的子进程,subprocess.check_callsubprocess.check_output .基本上,

subprocess.check_call(['command', 'arg1', ...])

将指定的命令生成为子进程,阻塞,并验证子进程是否成功终止(返回零)。如果不是,它会抛出异常。 check_output 做同样的事情,除了它捕获子进程的标准输出并将其作为字节字符串返回。

这很方便,因为它是单个 Python 表达式(您不必通过几行代码设置和控制子流程),并且没有忘记检查返回值的风险。

check_callcheck_output 的惯用 Ruby 等价物是什么? 我知道 $? 全局变量这给出了进程的返回值,但那会很尴尬——有异常的意义在于您不必手动检查错误代码。 There are numerous ways to spawn a subprocess in Ruby ,但我没有看到任何提供此功能的。

最佳答案

这是我拼凑的一个简单的 check_call,它似乎有效。

def check_call(*cmd, **kw)
_, status = Process.waitpid2 Kernel.spawn(*cmd, **kw)
raise "Command #{cmd} #{status}" unless status.success?
end

关于python - Ruby 相当于 Python 的 subprocess.check_call/check_output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16678306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com