Python 如何通过函数抑制执行命令行脚本(行以“!”)的Google Colaboratory单元格中的输出
在GoogleColab中,我通过放置Python 如何通过函数抑制执行命令行脚本(行以“!”)的Google Colaboratory单元格中的输出,python,jupyter-notebook,ipython,jupyter,google-colaboratory,Python,Jupyter Notebook,Ipython,Jupyter,Google Colaboratory,在GoogleColab中,我通过放置来执行命令行脚本在行前面并执行单元格 比如说 !pip install adjustText 如果我想阻止这个单元格的输出,我可以这样做 %%capture !pip install adjustText 但是,我有这样一种情况:我通过一个函数执行命令行脚本,并仅抑制该命令行的输出,而不抑制正在执行该命令行的单元格的输出 比如说 第1单元: %%capture def installAdjust(): !pip install adjustTex
来执行命令行脚本代码>在行前面并执行单元格
比如说
!pip install adjustText
如果我想阻止这个单元格的输出,我可以这样做
%%capture
!pip install adjustText
但是,我有这样一种情况:我通过一个函数执行命令行脚本,并仅抑制该命令行的输出,而不抑制正在执行该命令行的单元格的输出
比如说
第1单元:
%%capture
def installAdjust():
!pip install adjustText
def installAdjust():
%%capture
!pip install adjustText
第2单元:
for v in range(10):
print(v)
installAdjust()
%%capture
for v in range(10):
print(v)
installAdjust()
这不会抑制的输出!pip安装调整文本
。我不想禁止Cell2的非命令行输出,所以我不能这样做
第2单元:
for v in range(10):
print(v)
installAdjust()
%%capture
for v in range(10):
print(v)
installAdjust()
而且,这也不起作用
第1单元:
%%capture
def installAdjust():
!pip install adjustText
def installAdjust():
%%capture
!pip install adjustText
使用python实用程序中的capture\u输出
:
from IPython.utils import io
for v in range(10):
print(v)
with io.capture_output() as captured:
installAdjust()
将来,只要一个神奇的函数不够用,就搜索正在访问的核心属性并自己访问它们
答案来自:
您可以在单元格中使用“%%capture”魔术函数(不带引号)来抑制该特定单元格的输出,无论它使用命令行代码还是某些python代码,魔术函数基本上是jupyter笔记本的一个属性,但由于google colab是在此基础上构建的,因此它也可以在那里工作。
例如:
只需将输出重定向附加到命令:
重定向输出和错误,添加&>/dev/null
!mkdir /content/notexist/blah &> /dev/null
!mkdir /content/notexist/yeaa > /dev/null
重定向输出,但不是错误,添加/dev/null
!mkdir /content/notexist/blah &> /dev/null
!mkdir /content/notexist/yeaa > /dev/null
在下面的示例中,两个命令都失败,但我们忽略了第二个命令的错误
哇,这个答案救了我一天!