web-dev-qa-db-fra.com

Comment supprimer une sortie dans la cellule de Colaboratory Google qui exécute un script de ligne de commande (la ligne commence par `!`) Via une fonction

Dans Google Colab, j'exécute des scripts de ligne de commande par placer un ! devant la ligne et exécuter la cellule.

Par exemple

!pip install adjustText

Si je veux empêcher la production de cette cellule, je peux le faire

%%capture
!pip install adjustText

Cependant, j'ai une situation où j'exécute les scripts de ligne de commande via une fonction et supprimez uniquement la sortie de cette ligne de commande, sans supprimer la sortie de la cellule à partir de laquelle il est exécuté

Par exemple

Cell1:

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

Cell2:

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

Cela ne réduit pas la sortie de !pip install adjustText. Je ne veux pas supprimer la sortie de la ligne de commande de la cellule2, donc je ne peux donc pas faire cela

Cell2:

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

En outre, cela ne fonctionne pas non plus

Cell1:

def installAdjust():
   %%capture
    !pip install adjustText
7
Peter Force

Utilisation capture_output des utilitaires de Python:

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

Pour l'avenir, chaque fois qu'une fonction magique ne suffit pas, la recherche des propriétés principales en cours d'accès et d'y accéder vous-même.

Réponse provenant de: Comment supprimez-vous la sortie dans Ipython Notebook?

3
Yaakov Bressler

vous pouvez utiliser la fonction magique '%% capture' dans une cellule (sans guillemets) pour supprimer la sortie de cette cellule particulière, qu'il utilise un code de ligne de commande ou un autre python Code, la fonction magique est Fondamentalement, une propriété de Jupyter Notebooks, mais depuis que Google Colab est construite à ce sujet, cela fonctionnera également. Par exemple:

%%capture
!wget https://github.com/09.10-20_47_44.png
6
bhanu pratap