Jak wykonać zewnętrzne polecenie lub program w Python
- 4858
- 777
- Roland Sokół
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