Eu li isso em algum lugar há um tempo, mas não consigo encontrar. Estou tentando encontrar um comando que execute comandos no terminal e, em seguida, produza o resultado.
Por exemplo: o script será:
command 'ls -l'
Vai sair o resultado da execução desse comando no terminal
os.system("nslookup gmail.com")
retorna apenas a última linha0
, mas quero obter a resposta completa.Eu prefiro o uso do módulo de subprocesso:
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
fonte
call(["eog", "1breeproposal.png", "-f"])
Na verdade, qualquer pergunta sobre o subprocesso será uma boa leitura
fonte
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
fonte
Isso deve funcionar. Não sei como imprimir a saída no shell python.
fonte
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
fonte
Jupyter
Em um notebook Jupyter você pode usar a função mágica
!
ipython
Para executar isso como um
.py
script, você precisa usaripython
executar script
fonte
Você pode importar o módulo 'os' e usá-lo assim:
fonte
para python3 use subprocesso
fonte