Ich möchte ein IPython-Notebook mit einigen Shell-Befehlen und deren Eingabe zusammenstellen. In der Bash-Eingabeaufforderung kann ich "hier-Dokument" Syntax:Wie stelle ich Inline-Eingaben für einen IPython (Notebook) -Shellbefehl bereit?
bash-3.2$ mysql -u root <<END_IPUT
> use mydb;
> show tables;
> END_INPUT
Wie kann ich den gleichen Effekt in IPython erhalten, und zwar in einem jupyter Notebook? Ich weiß, wie Shell-Befehle wie IPython als „Linie magics“ oder „Zelle magics“, z.B .:
In [7]: !! ls -tF
Out[7]: ['Demo-notebook.ipynb',
'createdb.sql',
...
Ich habe sah IPython as a system shell, auszuführen, die zeigt, wie einige syntaktischen Feinheiten zu ermöglichen. Nach dem Folgenden kann ich Systembefehle ausführen, ohne !
oder !!
Voranstellen
# Turn everything in $PATH into an alias;
# then enable calling aliases without ! or %
%rehashx
%autocall 2
Aber nichts hilft mit Eingabe auf diese Befehle Inline-Bereitstellung: Die hier-Dokument Syntax in IPython und die Ergebnisse in einem Python ungültig ist SyntaxError
. Also, wie mache ich das?
Haben Sie die Bash-Zelle Magie versucht? Starte eine Zelle mit der Zeile '%% bash' und lege den Bash-Code in den Rest. –
Guter Vorschlag, danke! Ich hatte bereits '%% sx' gefunden, was das gleiche tut, denke ich. Aber die Dokumentation für '% bash' führte mich zu' %% script', was _exactly_ ist, wonach ich gesucht habe. In der Zwischenzeit habe ich auch eine Erweiterung speziell für 'sql' gefunden, die mein unmittelbares Problem noch besser gelöst hat. Aber wenn du eine Antwort schreiben willst, die deinen Vorschlag erweitert, werde ich es akzeptieren. – alexis
@Thomas, bevor Sie mein Tag zum dritten Mal löschen, schauen Sie, wie viele Leute folgen jedem. Wenn [tag: ipython-notebook] ein solches Problem darstellt, nehmen Sie bitte den Prozess auf, um die Tags zusammenzuführen. – alexis