Как подавить вывод в ячейку Google Colab Laboratory, которая выполняет скрипт командной строки (строка начинается с `!`) Через функцию - PullRequest
1 голос
/ 23 июня 2019

В Google colab я выполняю сценарии командной строки, помещая ! перед строкой и выполняя ячейку.

Например

!pip install adjustText

Если я хочу предотвратить вывод этой ячейки, я могу сделать это

%%capture
!pip install adjustText

Однако у меня есть ситуация, когда я выполняю сценарии командной строки через функцию и подавляю вывод только для этой командной строки, не подавляя вывод ячейки, из которой она выполняется

Например

Cell1:

%%capture
def installAdjust():
    !pip install adjustText

CELL2:

for v in range(10):
    print(v)
    installAdjust()

Это не подавляет вывод из !pip install adjustText. Я не хочу подавлять вывод некомандной строки из Cell2, поэтому я не могу этого сделать

CELL2:

%%capture
for v in range(10):
    print(v)
    installAdjust()

Кроме того, это тоже не работает

Cell1:

def installAdjust():
   %%capture
    !pip install adjustText

1 Ответ

2 голосов
/ 23 июня 2019

Используйте capture_output из утилит python:

from IPython.utils import io
for v in range(10):
    print(v)
    with io.capture_output() as captured:
      installAdjust()

В будущем, когда магической функции недостаточно, ищите основные свойства, к которым осуществляется доступ, и обращайтесь к ним самостоятельно.

Ответ получен из: Как подавить вывод в IPython Notebook?

...