CodeGym /Cursos /Python SELF PT /Criando uma janela para executar scripts

Criando uma janela para executar scripts

Python SELF PT
Nível 50 , Lição 3
Disponível

1. A ideia de multitarefa em aplicações

Então, meus queridos futuros mestres da automação, vamos voltar ao nosso curso de Python e celebrar — já estamos criando aplicativos com interface gráfica no Tkinter! Nesta palestra, vamos aprender como tornar nossa aplicação ainda mais poderosa adicionando a capacidade de executar outros scripts diretamente da interface do usuário. Vamos ser honestos, a possibilidade de executar tarefas automatizadas com um único clique pode nos tornar um pouco menos preguiçosos... ou, ao contrário, nos prender numa armadilha de pijamas em casa. Mas vamos ver como fazer isso!

Conceito de multitarefa

Imagine o seguinte cenário: você tem uma aplicação que pode processar dados automaticamente, fazer web scraping, gerar relatórios. Mas toda vez que você quer executar um dos seus scripts incríveis, precisa alternar entre janelas. É como aquelas TVs antigas, onde você tinha que levantar e apertar o botão no painel para mudar o canal... a evolução nos trouxe o controle remoto, e seu Python GUI vai lidar com a execução de scripts por você!

Entendendo a execução de scripts externos

O Tkinter nos permite conectar a interface com scripts externos, o que é realmente útil. Isso pode ser feito com o módulo padrão subprocess. O módulo permite iniciar novos processos, executar comandos no shell e até interagir com eles. Vamos dar o primeiro passo para o nosso "centro de controle de automação".

import subprocess
# Exemplo simples de execução de script Python
subprocess.run(["python", "seu_script.py"])

2. Seleção de arquivos e criação da interface de execução

Interface para seleção de script

Para começar, queremos que o usuário possa selecionar o arquivo do script que deseja executar. É mais conveniente fazer isso com o widget FileDialog do módulo tkinter.filedialog. Este widget abrirá uma janela padrão de seleção de arquivo, que, como um bom garçom, entregará o arquivo que você escolher.

import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()  # Não queremos exibir a janela principal

file_path = filedialog.askopenfilename(title="Selecione o script para executar")
print(f"Arquivo selecionado: {file_path}")

2.2 Criando o botão de execução

Agora adicionamos um botão que, após a seleção do arquivo, permitirá que você o execute.

def launch_script():
    file_path = filedialog.askopenfilename(title="Selecione o script para executar")
    if file_path:
        subprocess.run(["python", file_path])

root = tk.Tk()
launch_button = tk.Button(root, text="Executar script", command=launch_script)
launch_button.pack(pady=20)

root.mainloop()

Agora temos um botão que chama a caixa de diálogo de seleção de arquivo e, após selecionar um arquivo, o executa em um processo separado. Fantástico!

3. Aplicação prática

Criando a interface de controle

Já vimos como executar um script. Vamos adicionar funções de feedback e controles para que nossa aplicação pareça mais profissional.

import tkinter as tk
from tkinter import filedialog, messagebox
import subprocess

def launch_script():
    file_path = filedialog.askopenfilename(title="Selecione o script para executar")
    if file_path:
        try:
            result = subprocess.run(["python", file_path], capture_output=True, text=True)
            messagebox.showinfo("Resultado da execução", f"Script executado com sucesso!\n\n{result.stdout}")
        except subprocess.CalledProcessError as e:
            messagebox.showerror("Erro na execução", f"Ocorreu um erro ao executar o script:\n\n{e.stderr}")

root = tk.Tk()
launch_button = tk.Button(root, text="Executar script", command=launch_script)
launch_button.pack(pady=20)

root.mainloop()

Tratamento de erros

Não vivemos em um mundo perfeito, onde não existem erros. Lembramos disso e adicionamos tratamento de erros para que nosso usuário não quebre o monitor por causa de falhas "não óbvias". Usamos try-except para exibir uma mensagem de erro se o script não puder ser executado.

Retorno do resultado da execução

Além de executar o script, capturamos o resultado da execução e o mostramos ao usuário, porque quem não gosta de ver seu código sendo elogiado? Na realidade, isso é útil para depuração e para entender o que exatamente aconteceu.

4. Como isso tudo pode ser usado?

O mais incrível nas possibilidades de automação via GUI é a versatilidade. A organização do seu fluxo de trabalho se torna mais gerenciável e eficiente. Você pode executar limpeza de dados, criar relatórios, até enviar e-mails — tudo isso, amarrado em um clique. No ambiente de negócios, isso significa menos tempo com tarefas monótonas e mais tempo para inovação. Em entrevistas, isso pode se tornar seu trunfo, mostrando produtividade real e habilidades de integração.

Bônus: nossa interface pode executar não apenas scripts Python, mas praticamente qualquer script, incluindo arquivos bash e batch. O importante é que o sistema saiba como executá-los.

Agora pegue este exemplo, adicione alguns comentários mágicos, e seu colega com certeza vai pensar que você está escondendo algo importante. Mas por enquanto, siga em frente no caminho para criar o seu automatizador perfeito!

Para um aprendizado mais profundo, você pode acessar a documentação oficial do Tkinter e a documentação do módulo subprocess, onde sempre é possível encontrar mais detalhes interessantes e exemplos de uso.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION