Pular para o conteúdo

Como saber se um comando que foi executado em python retornou sucesso ou nao ?

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Como saber se um comando que foi executado em python retornou sucesso ou nao ?

Enviado em 13/08/2018 - 14:07h

por exemplo em shell temos o $? que retorna se o comando foi executado com sucesso 0 ou não 'diferente de 0'
por exemplo:
TMg_@thauanmendes:~$ cat Imagens
cat: Imagens: É um diretório
TMg_@thauanmendes:~$ echo $?
1
TMg_@thauanmendes:~$ cd Imagens/
TMg_@thauanmendes:~/Imagens$ echo $?
0
===
Qual o comando em python ?

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Como saber se um comando que foi executado em python retornou sucesso ou nao ?

Enviado em 13/08/2018 - 15:33h

TheMagicOz escreveu:

por exemplo em shell temos o $? que retorna se o comando foi executado com sucesso 0 ou não 'diferente de 0'
por exemplo:
TMg_@thauanmendes:~$ cat Imagens
cat: Imagens: É um diretório
TMg_@thauanmendes:~$ echo $?
1
TMg_@thauanmendes:~$ cd Imagens/
TMg_@thauanmendes:~/Imagens$ echo $?
0
===
Qual o comando em python ?



#!/usr/bin/env python
# python 2.x
a = int(input("Digite um numero: "))
try:
print "numero aceito!"
except:
print "Digite apenas numeos inteiros!"

teste esse codigo e veja se funcione como deseja...
abraços!

======================
O conhecimento é a chave para a porta da liberdade!

3. É meio que isso , só que quero desse jeito para poder fazer isso por ex

Enviado em 13/08/2018 - 17:05h

queria que pegasse o retorno de um comando por exemplo, tenho um script em python que cria um database por exemplo, entrei com o nome do meu database , ai executei o comando de criação de database, ai se esse comando for executado com sucesso ( que seria o valor $? = 0 ) ele daria create database e listava os databases disponiveis, caso o comando caia em algum erro ele executaria outro comando dizendo que deu erro e que o database não foi criado e pedindo pra entrar num valor novo, por isso queria um verificador de comando que nem faço no shell , se puder ajudar desde já muito obrigado :)

4. Re: Como saber se um comando que foi executado em python retornou sucesso ou nao ?

Enviado em 13/08/2018 - 18:09h

Estude o try e o except.

5. Re: Como saber se um comando que foi executado em python retornou sucesso ou nao ?

Enviado em 14/08/2018 - 08:24h

Você pode utilizar o
sys.exit(0) 

ou o
sys.exit(1) 


Exemplo de código em Python 3.x:
import sys

if sys.argv[1]=='oi':
print('Olá')
sys.exit(0)

sys.exit(1)


Execução no Linux Ubuntu:
diego@Floki:~$ python3 retorno.py oi
Olá
diego@Floki:~$ echo $?
0


diego@Floki:~$ python3 retorno.py teste
diego@Floki:~$ echo $?
1


Abraço,
Diego M. Rodrigues

6. Re: Como saber se um comando que foi executado em python retornou sucesso ou nao ?

Enviado em 14/08/2018 - 10:06h

Use o módulo subprocess:
>>> # Importamos o módulo.
>>> from subprocess import getstatusoutput
>>> # Pegamos a saída e o status ($?) do comando 'ls'
>>> status, output = getstatusoutput('ls')
>>> # Imprimimos o status.
>>> print(status)
0
>>> # Imprimimos a saída.
>>> print(output)
Área de trabalho
Documentos
Downloads
Imagens
Modelos
Música
Projetos
Público
Scripts
Vídeos
>>>


Se como "comando" você se refere à uma função, use o return para retornar True (1) ou False (0) dentro do bloco:
>>> def is_decimal(number: str):
... if number.isdecimal():
... return True
... return False
...
>>> is_decimal('10')
True
>>> is_decimal('A')
False

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder