Programa para buscar de frases ou palavras em arquivos de texto - Aplicação em Python


Se você já precisou encontrar rapidamente uma frase específica em um documento de texto extenso, sabe como isso pode ser desafiador. Este tutorial apresenta uma aplicação em Python usando Tkinter que facilita a busca de frases completas contendo uma palavra específica em arquivos de texto. Com esta aplicação, você pode fazer upload de um arquivo .txt, inserir uma palavra-chave e visualizar rapidamente as frases que contêm essa palavra.

Funcionalidades da Aplicação

Esta aplicação permite:

  • Fazer upload de arquivos de texto (.txt).
  • Inserir uma palavra para buscar no texto.
  • Exibir as frases completas onde a palavra aparece.

É uma ferramenta útil para quem trabalha com grandes volumes de texto e precisa localizar informações específicas de forma eficiente.

Como o Código Funciona

A aplicação foi desenvolvida em Python com a biblioteca Tkinter, que é usada para criar interfaces gráficas simples e intuitivas. Abaixo está uma visão geral das principais partes do código:

1. Interface Gráfica com Tkinter

A interface inclui um campo de entrada para a palavra de busca, um botão para fazer o upload do arquivo, e um botão de busca. Os resultados são exibidos em uma área de texto rolável, onde cada frase contendo a palavra pesquisada é apresentada em uma nova linha.

2. Função de Upload do Arquivo

A função upload_file permite que o usuário selecione e carregue um arquivo .txt. O código tenta abrir o arquivo com codificação UTF-8 e, caso encontre um erro, tenta novamente com ISO-8859-1 para garantir compatibilidade com a maioria dos arquivos de texto.

3. Função de Busca de Frases

A função search_phrases faz a busca da palavra desejada no texto carregado. Ela utiliza uma expressão regular para localizar frases completas onde a palavra aparece, considerando o início e o fim de cada frase. O resultado é exibido na área de texto, mostrando cada ocorrência em uma linha separada.

Exemplo de Uso

Para usar a aplicação:

  1. Clique em "Fazer upload do arquivo (.txt)" e selecione um arquivo de texto.
  2. Insira a palavra que deseja buscar.
  3. Clique no botão "Buscar" e visualize as frases que contêm essa palavra na área de resultados.

Código Completo

import tkinter as tk
from tkinter import filedialog, messagebox, scrolledtext
import re

class TextSearchApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Buscar Frase por Palavra")
        
        # Configuração da interface
        tk.Label(root, text="Palavra para busca:").pack(pady=5)
        
        self.search_entry = tk.Entry(root, width=40)
        self.search_entry.pack(pady=5)
        
        tk.Button(root, text="Fazer upload do arquivo (.txt)", command=self.upload_file).pack(pady=5)
        
        tk.Button(root, text="Buscar", command=self.search_phrases).pack(pady=5)
        
        self.result_area = scrolledtext.ScrolledText(root, wrap=tk.WORD, width=80, height=20)
        self.result_area.pack(pady=10)
        
        self.file_content = ""
    
    def upload_file(self):
        file_path = filedialog.askopenfilename(filetypes=[("Text files", "*.txt")])
        
        if file_path:
            try:
                # Tenta abrir com UTF-8, se falhar tenta com ISO-8859-1
                try:
                    with open(file_path, 'r', encoding='utf-8') as file:
                        self.file_content = file.read()
                except UnicodeDecodeError:
                    with open(file_path, 'r', encoding='ISO-8859-1') as file:
                        self.file_content = file.read()
                
                messagebox.showinfo("Sucesso", "Arquivo carregado com sucesso!")
            except Exception as e:
                messagebox.showerror("Erro", f"Erro ao carregar o arquivo: {e}")
        else:
            messagebox.showwarning("Atenção", "Nenhum arquivo selecionado.")
    
    def search_phrases(self):
        self.result_area.delete(1.0, tk.END)
        
        if not self.file_content:
            messagebox.showwarning("Atenção", "Por favor, faça o upload de um arquivo primeiro.")
            return
        
        search_word = self.search_entry.get().strip()
        
        if not search_word:
            messagebox.showwarning("Atenção", "Por favor, insira uma palavra para buscar.")
            return
        
        # Encontrando frases com a palavra-chave
        pattern = re.compile(r'([^.]*?' + re.escape(search_word) + r'.*?[\.
])', re.IGNORECASE)
        matches = pattern.findall(self.file_content)
        
        if matches:
            for sentence in matches:
                self.result_area.insert(tk.END, sentence.strip() + "

")
        else:
            self.result_area.insert(tk.END, "Nenhuma ocorrência encontrada para a palavra inserida.")
            

if __name__ == "__main__":
    root = tk.Tk()
    app = TextSearchApp(root)
    root.mainloop()
        

Conclusão

Este código demonstra como usar Python e Tkinter para construir uma ferramenta simples e prática para busca de frases em arquivos de texto. A interface é intuitiva e facilita o processo de carregar arquivos e buscar informações rapidamente. Essa aplicação pode ser expandida ou adaptada conforme as necessidades, tornando-se uma ferramenta poderosa para manipulação de grandes volumes de texto.

Postar um comentário

0 Comentários