gpt4 book ai didi

python - 如何避免显示运行 subprocess.call 后导致的错误

转载 作者:行者123 更新时间:2023-12-01 01:26:35 25 4
gpt4 key购买 nike

因此,当我在 python 中运行 subprocess.call 时,运行脚本后,如果存在由 bash 引起的错误消息,我不想将其显示给用户。
例如,

for i in range(len(official_links)):
if(subprocess.call('pacman ' + '-Qi ' + official_links[i].replace('https://www.archlinux.org/packages/?q=', ''),shell=True, stdout=subprocess.PIPE) == 0):
print(official_links[i].replace('https://www.archlinux.org/packages/?q=', '') + ' installed')
else:
print(official_links[i].replace('https://www.archlinux.org/packages/?q=', '') + ' not installed')

命令pacman -Qi packagename检查packagename是否已经安装。当我运行我的脚本时,如果它已安装,我不会从 bash 收到任何额外的消息,只有我打印的内容。但是,如果包不存在并导致错误,则错误和我的打印都会打印在屏幕上。

有没有办法避免打印命令错误?

谢谢。

最佳答案

同时重定向 stderr:

if(subprocess.call('pacman ' + '-Qi ' + official_links[i].replace('https://www.archlinux.org/packages/?q=', ''),shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) == 0):

这就是显示错误的地方。

关于python - 如何避免显示运行 subprocess.call 后导致的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53278466/

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