Ich habe das vor einiger Zeit irgendwo gelesen, kann es aber nicht finden. Ich versuche, einen Befehl zu finden, der Befehle im Terminal ausführt und dann das Ergebnis ausgibt.
Zum Beispiel: Das Skript lautet:
command 'ls -l'
Das Ergebnis der Ausführung dieses Befehls im Terminal wird ausgegeben
os.system("nslookup gmail.com")
nur die letzte Zeile zurück0
, aber ich möchte die vollständige Antwort erhalten.Ich bevorzuge die Verwendung eines Unterprozessmoduls:
Der Grund dafür ist, dass Sie, wenn Sie eine Variable im Skript übergeben möchten, auf sehr einfache Weise beispielsweise den folgenden Teil des Codes übernehmen können
quelle
call(["eog", "1breeproposal.png", "-f"])
In der Tat wird jede Frage zum Teilprozess eine gute Lektüre sein
quelle
Sie sollten auch in command.getstatusoutput nachsehen
Dies gibt ein Tupel der Länge 2 zurück. Das erste ist die Rückgabe-Ganzzahl (0 - wenn die Befehle erfolgreich sind). Das zweite ist die gesamte Ausgabe, wie im Terminal angezeigt wird.
Für ls
quelle
Das sollte funktionieren. Ich weiß nicht, wie ich die Ausgabe in die Python-Shell drucken soll.
quelle
Das os.popen () ist ziemlich einfach zu bedienen, aber seit Python 2.6 veraltet. Sie sollten stattdessen das Unterprozessmodul verwenden.
Lesen Sie hier: Lesen eines os.popen (Befehls) in einen String
quelle
Jupyter
In einem Jupyter-Notizbuch können Sie die magische Funktion verwenden
!
Ipython
Um dies als
.py
Skript auszuführen , müssten Sie verwendenipython
Skript ausführen
quelle
Sie können das 'os'-Modul importieren und wie folgt verwenden:
quelle
Verwenden Sie für Python3 den Unterprozess
quelle