Entrada

Tkinter: Manejo de Archivos con Filedialog

En la mayoría de las aplicaciones gráficas, a menudo necesitamos que el usuario seleccionen o guarden archivos desde o hacia su sistema de archivos. Esto se puede hacer fácilmente en Tkinter utilizando el módulo filedialog. Este módulo proporciona una forma sencilla de mostrar cuadros de diálogo para abrir, guardar o seleccionar archivos y directorios.

Funciones Principales del Módulo Filedialog

Abrir un archivo: askopenfilename

La función askopenfilename() abre un cuadro de diálogo para seleccionar un archivo y devuelve la ruta del archivo, aceptará dos parámetros title y filetypes:

1
2
3
4
5
6
7
8
9
10
11
12
13
import tkinter as tk
from tkinter import filedialog

def upload_file():
  file_path = filedialog.askopenfilename(
    title="Selecciona un archivo", 
    filetypes=[("Text File", "*.txt"), ("All files", "*.*")])
  print("Seleccionaste el archivo:", file_path)

root = tk.Tk()
open_bottom = tk.Button(root, text="Subir archivo", command=upload_file)
open_bottom.pack(pady=20)
root.mainloop()
Tkinter

Guardar un archivo: asksavefilename

Para guardar un archivo, existe una función llamada asksaveasfilename(). Esta función acepta tres argumentos, que son title, defaultextension y filetypes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import tkinter as tk
from tkinter import filedialog

def save_file():
  file_path = filedialog.asksaveasfilename(
      title="Guardar como",
      defaultextension=".txt",
      filetypes=[("Text files", ".txt"), ("All files", "*.*")]
  )

  if file_path:
    try:
      with open(file_path, 'w') as file:
        file.write("¡Hola Mundo!")
      print("Archivo guardado exitosamente en :", file_path)
    except Exception as e:
      print("Error guardando el archivo: ", e)

root = tk.Tk()
save_button = tk.Button(root, text="Guardar Archivo", command=save_file)
save_button.pack(pady=20)
root.mainloop()
Tkinter

Seleccionar un directorio: askopendirectory

La función askopendirectory() abre un cuadro de diálogo que permite seleccionar un directorio, y devuelve la ruta del directorio elegido:

1
2
3
4
5
6
7
8
9
10
11
12
import tkinter as tk
from tkinter import filedialog

def upload_folder():
  directory = filedialog.askopenfilename(title="Selecciona directorio")
  if directory:
    print("Directorio seleccionado:", directory)

root = tk.Tk()
open_bottom = tk.Button(root, text="Subir directorio", command=upload_folder)
open_bottom.pack(pady=20)
root.mainloop()
Tkinter

Mi lema es

Esta entrada está licenciada bajo CC BY 4.0 por el autor.