Jak wykonać zewnętrzne polecenie lub program w Python

Jak wykonać zewnętrzne polecenie lub program w Python

Python podproces Moduł umożliwia odrodzenie nowych procesów i wykonywanie zewnętrznych poleceń lub skryptów ze skryptów Python. Możesz zainstalować najnowszą wersję Python za pomocą tych samouczków. Istnieje również wiele IDE dostępnych dla Pythona. Jak instaluj Pycharm Python IDE w systemach Ubuntu.

Python Scrpt, aby wywołać polecenie systemu

Utwórzmy swój pierwszy program, aby wymienić wszystkie pliki dostępne w bieżącym katalogu. Możesz dodać dowolną liczbę parametrów wiersza poleceń z rozdzielonymi comm (,).

#!/USR/bin/Python3 Import Subprocess Subprocess.Call ([„ls”, „-l”])
1234#!/usr/bin/python3 import Subprocessubrocess.Call ([„ls”, „-l”])

Gdzie-

  • Instrukcja importu służy do załadowania modułu podprocesowego formularza standardowego biblioteki Python
  • wywołanie jest funkcją modułu podprocesowego, służy do wykonywania poleceń zewnętrznych

Python wydruk bez nowej linii

Polecenia Pythona kończą się nowym wyjściem linii „\ n”, które można zastąpić za pomocą end = ””. Zobacz poniższy przykład.

#!/usr/bin/python3 Import Subprocess Print („\ ntoday is”,) podproces.zadzwoń ([„data”, „+%d”])
123456#!/usr/bin/python3 Import Subprocess Print („\ ntoday to”, end = "") podproces.zadzwoń ([„data”, „+%d”])

Wynik:

Dzisiaj jest 11.11.18 

Przykład Pythona z rozszerzeniem skorupy

Domyślny podproces.Wezwanie nie rozszerza wieloznacznych zysków ani nie wykonuje podstawienia dowodzenia. Można to zastąpić, przekazując prawdziwą wartość argumentu powłoki. Pamiętaj, że użycie powłoki = true może być problemem bezpieczeństwa dla twojego systemu poprzez wykonywanie szkodliwego polecenia.

#!/usr/bin/python3 import podproces # Wykonanie polecenia bez podproces rozszerzenia powłoki.Call ([„Echo”, „Welcome $ User”]) # Wykonanie polecenia z podprocesem rozszerzenia powłoki.Call („Echo Welcome $ User”, Shell = True)
123456789#!/usr/bin/python3 import podproces # Wykonanie polecenia bez powłoki.Call ([„Echo”, „Welcome $ User”]) # Wykonanie polecenia z powłoką rozszerzającą Process.Call („Echo Welcome $ User”, Shell = True)

Wynik:

Witamy $ użytkownika powitalne root 

Na powyższym wyjściu widać, że pierwsze polecenie drukuje nazwę zmienną, ponieważ zostało wykonane bez rozszerzenia powłoki. Drugie polecenie wykonane z rozszerzeniem powłoki Uzyskaj wartość zmiennej środowiska użytkownika. Możesz także zobaczyć, że całe polecenie jest teraz przekazywane jako ciąg, a nie jako lista ciągów.

Inne przydatne przykłady Pythona

Możesz sprawić, by scenariusze można było bardziej czytelny i piękny, przechowując długie polecenie w zmiennej, a następnie wykonać je.

#!/usr/bin/python3 import podproces cmd = "grep -re 'fatal'/var/log/>.TXT „podproces.Call (CMD, Shell = True)
123456#!/usr/bin/python3 import podproces cmd = "grep -re 'fatal'/var/log/>.TXT „podproces.Call (CMD, Shell = True)

Możesz także przechowywać wyjście dowolnego polecenia do zmiennej za pomocą podproces.Getoutput. Będzie to również przechowywać, jeśli zostanie wygenerowany jakikolwiek komunikat o błędzie.

#!/usr/bin/python3 import podproces.Getoutput („PWD”) druk (wyjście)
12345678#!/usr/bin/python3 import podproces.Getoutput („PWD”) druk (wyjście)

Wynik:

Wyjście polecenia „PWD” to:/root/python/scenariusz