Como executar um programa Python pela linha de comando

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a habilidade fundamental de executar programas Python a partir da linha de comando. Este método é essencial para automação, scripting e implantação de aplicações. Guiá-lo-emos através da criação de um script Python, sua execução e o envio de argumentos para ele, tudo dentro da interface de linha de comando.

Criar e Executar um Script Python Simples

A forma mais comum de executar um programa Python é escrevendo seu código em um arquivo com a extensão .py e, em seguida, executando esse arquivo usando o interpretador Python a partir do seu terminal. Vamos começar criando um programa clássico "Olá, Mundo!".

Primeiro, você precisa criar um novo arquivo. No explorador de arquivos do WebIDE à esquerda, clique com o botão direito do mouse no espaço vazio no diretório project e selecione "New File". Nomeie o arquivo como hello.py.

Em seguida, abra o arquivo hello.py e adicione o seguinte código Python. Este código usa a função embutida print() para exibir uma mensagem no console.

print("Hello, LabEx!")

Agora que você criou o script, pode executá-lo. Abra o terminal integrado no seu WebIDE (se ele ainda não estiver aberto, você pode usar o menu Terminal > New Terminal). O terminal deve abrir no diretório /home/labex/project, onde você salvou seu arquivo.

Para executar o script, digite o comando python seguido pelo nome do seu arquivo:

python hello.py

Após pressionar Enter, você verá a saída do seu script impressa diretamente no terminal.

Hello, LabEx!

Você criou e executou com sucesso seu primeiro script Python a partir da linha de comando.

Utilizando Argumentos de Linha de Comando

Executar scripts a partir da linha de comando torna-se ainda mais poderoso quando você pode passar informações para eles em tempo de execução. Essas informações são chamadas de argumentos de linha de comando. O módulo sys do Python fornece uma maneira simples de acessá-los.

Vamos criar um novo script que cumprimenta um usuário pelo nome, com o nome fornecido como um argumento de linha de comando.

Crie um novo arquivo chamado greet.py no diretório /home/labex/project.

Adicione o seguinte código ao greet.py. Este script importa o módulo sys. Os argumentos de linha de comando são armazenados na lista sys.argv. sys.argv[0] é sempre o nome do próprio script, e os argumentos subsequentes começam a partir de sys.argv[1].

import sys

## Obtém o nome do primeiro argumento da linha de comando
name = sys.argv[1]

print(f"Hello, {name}!")

Agora, execute este script a partir do terminal, mas desta vez, adicione um nome após o nome do arquivo do script. Por exemplo, vamos usar "World".

python greet.py World

O script pegará "World" como um argumento e o usará na saída.

Hello, World!

Você pode tentar executá-lo com seu próprio nome para ver como a saída muda.

python greet.py LabEx
Hello, LabEx!

Esta técnica torna seus scripts flexíveis e reutilizáveis para diferentes entradas.

Tornando Scripts Mais Robustos

O que acontece se você executar o script greet.py do passo anterior sem fornecer um nome? Vamos tentar.

python greet.py

Você encontrará um erro.

Traceback (most recent call last):
  File "/home/labex/project/greet.py", line 4, in <module>
    name = sys.argv[1]
IndexError: list index out of range

Este IndexError ocorre porque o script tenta acessar sys.argv[1], mas como nenhum argumento foi fornecido, este índice não existe. Um script robusto deve lidar com esses casos de forma graciosa.

Vamos modificar greet.py para verificar se um argumento foi fornecido. Se não, ele usará um nome padrão. Podemos verificar o número de itens na lista sys.argv usando a função len(). Se len(sys.argv) for maior que 1, isso significa que pelo menos um argumento foi fornecido.

Atualize seu arquivo greet.py com o seguinte código:

import sys

if len(sys.argv) > 1:
    ## Usa o argumento fornecido se ele existir
    name = sys.argv[1]
else:
    ## Usa um nome padrão se nenhum argumento for fornecido
    name = "World"

print(f"Hello, {name}!")

Agora, seu script está mais robusto. Execute-o novamente sem um argumento:

python greet.py

Desta vez, ele é executado sem erros e usa o nome padrão.

Hello, World!

E ele ainda funciona corretamente quando você fornece um argumento:

python greet.py LabEx
Hello, LabEx!

Lidar com erros potenciais e fornecer comportamentos padrão são práticas essenciais para escrever aplicações de linha de comando confiáveis.

Resumo

Neste laboratório, você aprendeu as habilidades essenciais para executar programas Python a partir da linha de comando. Você começou criando e executando um script simples. Em seguida, progrediu para tornar seus scripts mais dinâmicos e interativos usando argumentos de linha de comando através do módulo sys. Finalmente, você aprendeu como tornar seus scripts mais robustos, lidando com casos em que os argumentos podem estar ausentes. Estas são habilidades fundamentais para qualquer desenvolvedor Python que deseja construir ferramentas de linha de comando ou automatizar tarefas.