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



因此,当我在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')

命令CCD_ 2检查包名称是否已经安装。当我运行我的脚本时,如果安装了它,我不会从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):

这就是显示错误的地方。

相关内容

最新更新