Respostas:
Existem várias maneiras de fazer isso:
Uma maneira simples é usar o módulo de sistema operacional:
import os
os.system("ls -l")
Coisas mais complexas podem ser alcançadas com o módulo de subprocesso: por exemplo:
import subprocess
test = subprocess.Popen(["ping","-W","2","-c", "1", "192.168.1.70"], stdout=subprocess.PIPE)
output = test.communicate()[0]
os.system("nslookup gmail.com")
retorna apenas a última linha 0
, mas quero obter a resposta completa.
Eu prefiro o uso do módulo de subprocesso:
from subprocess import call
call(["ls", "-l"])
A razão é que se você deseja passar alguma variável no script, isso é uma maneira muito fácil, por exemplo, pegue a seguinte parte do código
abc = a.c
call(["vim", abc])
call(["eog", "1breeproposal.png", "-f"])
Na verdade, qualquer pergunta sobre o subprocesso será uma boa leitura
Você também deve olhar para commands.getstatusoutput
Isso retorna uma tupla de comprimento 2 .. O primeiro é o inteiro de retorno (0 - quando os comandos são bem-sucedidos), o segundo é toda a saída, como será mostrado no terminal.
Para ls
import commands
s=commands.getstatusoutput('ls')
print s
>> (0, 'file_1\nfile_2\nfile_3')
s[1].split("\n")
>> ['file_1', 'file_2', 'file_3']
import os
os.system("echo 'hello world'")
Isso deve funcionar. Não sei como imprimir a saída no shell python.
O os.popen () é muito simples de usar, mas está obsoleto desde o Python 2.6. Você deve usar o subprocesso módulo de .
Leia aqui: lendo um os.popen (comando) em uma string
Em um notebook Jupyter você pode usar a função mágica !
!echo "execute a command"
files = !ls -a /data/dir/ #get the output into a variable
Para executar isso como um .py
script, você precisa usaripython
files = get_ipython().getoutput('ls -a /data/dir/')
executar script
$ ipython my_script.py
Você pode importar o módulo 'os' e usá-lo assim:
import os
os.system('#DesiredAction')
para python3 use subprocesso
import subprocess
s = subprocess.getstatusoutput(f'ps -ef | grep python3')
print(s)