因此,当我在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
将检查。当我运行脚本时(如果已安装),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/