Czytałem to gdzieś jakiś czas temu, ale nie mogę tego znaleźć. Próbuję znaleźć polecenie, które wykona polecenia w terminalu, a następnie wyprowadzi wynik.
Na przykład: skrypt będzie wyglądał następująco:
command 'ls -l'
Okaże wynik uruchomienia tego polecenia w terminalu
os.system("nslookup gmail.com")
zwraca tylko ostatnią linię0
, ale chcę uzyskać pełną odpowiedź.Preferuję użycie modułu subprocess:
Powodem jest to, że jeśli chcesz przekazać jakąś zmienną w skrypcie daje to bardzo łatwy sposób na przykład weź następną część kodu
źródło
call(["eog", "1breeproposal.png", "-f"])
Właściwie każde pytanie dotyczące podprocesu będzie dobrą lekturą
źródło
Powinieneś także zajrzeć do commands.getstatusoutput
Zwraca krotkę o długości 2. Pierwsza to zwracana liczba całkowita (0 - gdy komendy się powiodły), druga to całe wyjście, jak zostanie pokazane na terminalu.
Dla ls
źródło
To powinno działać. Nie wiem, jak wydrukować dane wyjściowe w powłoce Pythona.
źródło
Funkcja os.popen () jest dość prosta w użyciu, ale została wycofana od czasu Pythona 2.6. Powinieneś użyć podprocesu modułu .
Przeczytaj tutaj: wczytywanie os.popen (polecenie) do łańcucha
źródło
Jupyter
W notebooku jupyter możesz użyć magicznej funkcji
!
ipython
Aby wykonać to jako
.py
skrypt, musisz użyćipython
wykonaj skrypt
źródło
Możesz zaimportować moduł „os” i używać go w następujący sposób:
źródło
dla python3 użyj podprocesu
źródło