gpt4 book ai didi

python - 使用 grep : exit-status 2 的 Subprocess.check_output

转载 作者:可可西里 更新时间:2023-11-01 11:46:09 31 4
gpt4 key购买 nike

我之前使用过 subprocess 没有任何问题,出于某种原因,当我用 grep 尝试它时:

grepOut = subprocess.check_output("grep 'hello' tmp", shell=True)

我收到以下错误:

File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['grep', "'hello'", 'tmp']' returned non-zero exit status 2

直接在终端中输入命令,我没有收到任何错误。

编辑:请参阅 clemej 的回答以获取解释

最佳答案

当 shell=True 时,您使用了错误的参数。

参见 https://docs.python.org/2/library/subprocess.html

当您使用 shell=True 时,第一个参数不是字符串参数列表,而是作为字符串的命令:

grepOut = subprocess.check_output("grep 'hello' tmp", shell=True)

应该可以。

只有在不指定shell=True时才需要使用列表形式,所以或者:

grepOut = subprocess.check_output(['grep', "'hello'", 'tmp'])

应该也可以。

关于python - 使用 grep : exit-status 2 的 Subprocess.check_output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23420265/

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