es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ruta de archivos de entrada y devolución de una lista de archivos en tkinter.

Estoy intentando usar Tkinter para el código que aparece a continuación. Mi objetivo es utilizar la entrada de widgets para introducir la ruta de una carpeta y hacer clic en un botón para buscar y devolver la lista de archivos “pdf” de la carpeta (ver abajo). El código de Python funciona bien, pero no estoy seguro de cómo crearlo en Tkinter.

from os import listdir, mkdir, startfile
from os.path import isfile, join, exists
from PyPDF2 import PdfFileMerger
import os

Introducir la ruta del archivo y imprimir los archivos pdf en esa ruta

path = input(“Introduce la ubicación de la carpeta: “)
pdffiles = [f for f in listdir(path) if isfile(join(path, f)) and ‘.pdf’ in f]
print(‘\nLista de archivos PDF:\n’)
for file in pdffiles:
print(file)


<p>Resultado:

Lista de archivos PDF:

file1.pdf.pdf
file2.pdf.pdf
file3.pdf.pdf
file4.pdf.pdf
“`

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para crear este código en tkinter, se puede utilizar el widget Entry para aceptar la entrada de ubicación de la carpeta del usuario, y un widget Button para activar la búsqueda y devolver la lista de archivos en formato PDF. Aquí está un ejemplo de fragmento de código:

    import tkinter as tk
    from os import listdir
    from os.path import isfile, join
    
    def search_pdf_files():
        path = folder_path_entry.get() # obtiene la ubicación de la carpeta del widget Entry
        pdf_files = [f for f in listdir(path) if isfile(join(path, f)) and '.pdf' in f] # busca archivos en formato PDF en la carpeta
        pdf_files_text.delete(1.0, tk.END) # elimina los resultados de la búsqueda anterior
        if len(pdf_files) == 0:
            pdf_files_text.insert(tk.END, "No se encontraron archivos en formato PDF en la carpeta.") # si no se encuentran archivos en formato PDF, muestra un mensaje
        else:
            for file in pdf_files:
                pdf_files_text.insert(tk.END, "{}\n".format(file)) # muestra la lista de archivos en formato PDF en el widget Text
    
    # crea una ventana Tkinter
    window = tk.Tk()
    window.title("Buscar Archivos en Formato PDF")
    
    # crea un widget Entry para aceptar la entrada de ubicación de la carpeta del usuario
    folder_path_entry = tk.Entry(window)
    folder_path_entry.pack()
    
    # crea un widget Button para activar la búsqueda y devolver la lista de archivos en formato PDF
    search_button = tk.Button(window, text="Buscar Archivos en Formato PDF", command=search_pdf_files)
    search_button.pack()
    
    # crea un widget Text para mostrar la lista de archivos en formato PDF
    pdf_files_text = tk.Text(window)
    pdf_files_text.pack()
    
    window.mainloop()
    

    En este código, creamos una ventana Tkinter y agregamos un widget Entry, un widget Button y un widget Text. Cuando se hace clic en el botón de búsqueda, se llama a la función search_pdf_files que recupera la ubicación de la carpeta del widget Entry, busca archivos en formato PDF en la carpeta usando el mismo código que antes, y muestra la lista de archivos en formato PDF en el widget Text.

Comments are closed.