Como obter o nome do script Python em execução
Se você está desenvolvendo um script em Python e deseja saber qual o nome do arquivo que está sendo executado no momento, existe uma forma bastante simples de fazer isso utilizando os módulos padrão da linguagem. Essa funcionalidade pode ser útil para registrar logs, identificar scripts automaticamente ou realizar operações baseadas no próprio nome do arquivo.
Usando o módulo os
com sys.argv
O Python permite acessar os argumentos passados para o script através da lista sys.argv
. O primeiro item dessa lista, ou seja, sys.argv[0]
, representa o caminho completo do arquivo Python que está sendo executado.
Para obter somente o nome do arquivo, sem o caminho, podemos utilizar o método basename()
do módulo os.path
. Veja o exemplo abaixo:
import sys
import os
print(os.path.basename(sys.argv[0]))
Resultado esperado
Se você salvar esse script como script.py
e executá-lo no terminal da seguinte forma:
python script.py
O resultado será:
script.py
Isso significa que, mesmo que o caminho completo até o arquivo seja passado na execução, apenas o nome do arquivo será retornado pela função basename()
.
Por que isso é útil?
Esse recurso é especialmente prático em diversos cenários:
- Log automático: incluir o nome do script nos logs ajuda na rastreabilidade de erros.
- Scripts genéricos: útil quando múltiplos arquivos usam a mesma lógica base e diferem apenas pelo nome.
- Identificação para automações: útil em sistemas que executam diversos scripts com base em agendamentos (como cron jobs).
Complementos e boas práticas
Embora o exemplo acima seja simples, vale destacar algumas boas práticas:
- Evite usar
__file__
se o script estiver sendo embutido viaexec()
ou chamado em contextos fora do padrão, pois pode não funcionar como esperado. - Use
os.path.abspath(sys.argv[0])
para obter o caminho completo e absoluto do script, caso deseje armazená-lo ou analisá-lo.
Conclusão
Extrair o nome do script em execução com Python é uma tarefa simples que pode adicionar inteligência ao seu código. Através de sys.argv[0]
e da função os.path.basename()
, você pode obter essa informação de forma confiável e prática.
Essa é mais uma demonstração da versatilidade da linguagem Python para automação e controle de execução de scripts. Aproveite esse recurso para criar scripts mais organizados e autossuficientes.
Para mais informações sobre os módulos usados, consulte as documentações oficiais:
Esses recursos são fundamentais para desenvolver ferramentas robustas com Python.