GNU/Linux >> Znalost Linux >  >> Linux

Jak provést příkaz Shell v Pythonu

Python je jedním z populárních programovacích jazyků. Pokud používáte Linux, jeho učení vám pomůže při automatizaci pracovních postupů a skriptů.

Užitečnost Pythonu vychází z jeho snadného použití a jeho standardní knihovny. S ním můžete úspěšně spouštět příkazy shellu, a to je téma našeho dnešního tutoriálu.

Ve většině případů jste možná použili k provádění svých příkazů bash nebo dávkový soubor, ale budete to moci udělat i v Pythonu. Provedeme vás, jak spustit příkaz shell v Pythonu.

Provádění příkazů Shell pomocí Pythonu

1. Modul OS

Jedním z nejjednodušších a nejbezpečnějších způsobů, jak spustit příkaz shell prostřednictvím Pythonu, je použít os.system().

Uložme náš soubor Python jako usingos.py .

Níže je uveden kód, který musíte použít ve svých datech.

import os
os.system('ls')

V souboru Python nejprve importujeme modul os a poté zavoláme systémovou metodu() k předání příkazu, který chcete spustit. Jak vidíte, spustili jsme v něm příkaz „ls“. Pokud spustíte soubor python, získáte následující výstup.

python usingos.py

Použití os modulu je však velmi omezené. Za prvé, nebudete moci uložit výstup do proměnné.

Chcete-li uložit výstup, musíte použít jinou funkci s modulem os. Je to popen(). Jednoduše otevře kanál do az příkazového řádku. Tímto způsobem lze přistupovat k proudu Pythonu, a proto lze hodnoty uložit do proměnné.

Uložme náš nový skript Python jako savevalue.py

Uvnitř musíte zadat následující kód.

import os
stream = os.popen('eThe value is now returned')
output = stream.read()
print (output)

2. Subprocess Module

Nakonec se podíváme na modul subprocess. Pokud to se spouštěním příkazů shellu pomocí Pythonu myslíte vážně, měli byste použít metodu subprocess. K použití modulu subprocess potřebujete vaši verzi Pythonu 3.5 nebo vyšší.

Ale proč byste to měli dělat? Je to proto, že podproces přichází s vynikajícími funkcemi, které dobře fungují při práci s příkazy shellu v Pythonu. Například budete moci uložit výsledky do proměnných a také spustit nový proces, aniž byste se pokoušeli znovu vynalézt kolo.

Podívejme se na příklad pro lepší pochopení. Náš soubor pro tento příklad pojmenujeme jako subproc.py.

Uvnitř musíte použít následující kód.

import subprocess
list_file_names = subprocess.run(['ls'])
print ("Here are the files %d" %list_file_names.returncode)

První řádek kódu importuje modul podprocesu. Po dokončení nyní vytvoříme novou proměnnou s názvem „list_file_names“ a poté použijeme funkci subprocess.run(). Vyžaduje vstup v seznamu. Jak můžete vidět, vložili jsme linuxový příkaz ls, který uvádí soubory a složky.

Nakonec proměnnou vytiskneme s návratovým kódem.

Chcete-li příkazu předat argument, musíte argument předat jako další prvek v seznamu. Pokud tedy chcete předat argument „-l“ argumentu „ls“, bude seznam vypadat následovně:

["ls","-l"]

Závěr

Přivádí nás to k dokončení našeho tutoriálu o tom, jak spustit příkaz Shell v Pythonu pomocí os a podproces moduly. Zatímco os modul je spíše přímočarým řešením pro spuštění shell příkaz, podproces modul má výkonnější funkce pro spouštění nových procesů a extrahování výstupu. Jaké další způsoby používáte Python? Podělte se o své triky s našimi čtenáři v komentářích níže.


Linux
  1. Jak Dockerize Python aplikací s Miniconda

  2. Jak uložit výsledek provedeného příkazu shellu do proměnné v pythonu?

  3. Jak spustit příkaz bash s právy sudo v Javě?

  1. Jak provést příkaz v prostředí Shell bez jeho uložení do historie? [Tipy pro Linux]

  2. Jak používat příkaz su přes adb shell?

  3. Jak provádět externí příkazy shellu z ovladače laravel?

  1. Provést příkaz Nohup se vstupem?

  2. Jak používat export s Pythonem na Linuxu

  3. Jak spustit soubor python v linuxu