Mientras trabaja con GUI, es posible que necesite abrir archivos y leer datos de ellos o puede requerir escribir datos en ese archivo en particular. Uno puede lograr esto con la ayuda de la open()
función (python incorporado), pero es posible que no pueda seleccionar ningún archivo requerido a menos que proporcione una ruta a ese archivo en particular en el código.
Con la ayuda de la GUI, es posible que no necesite especificar la ruta de ningún archivo, pero puede abrir un archivo directamente y leer su contenido.
Para utilizar la función askopenfile(), es posible que deba seguir estos pasos:
-> import tkinter
-> from tkinter.filedialog import askopenfile ## Ahora puede usar esta función
-> file = askopeenfile(mode=’r’, filetypes=[(‘cualquier nombre que desee mostrar’, ‘extensión del tipo de archivo ‘)])
Tenemos que especificar el modo en el que desea abrir el archivo como en el fragmento anterior, esto abrirá un archivo en modo de lectura.
# importing tkinter and tkinter.ttk # and all their functions and classes from tkinter import * from tkinter.ttk import * # importing askopenfile function # from class filedialog from tkinter.filedialog import askopenfile root = Tk() root.geometry('200x100') # This function will be used to open # file in read mode and only Python files # will be opened def open_file(): file = askopenfile(mode ='r', filetypes =[('Python Files', '*.py')]) if file is not None: content = file.read() print(content) btn = Button(root, text ='Open', command = lambda:open_file()) btn.pack(side = TOP, pady = 10) mainloop()
Producción:
Contenido impreso del archivo seleccionado –
Comparación del contenido del archivo original y el contenido impreso –
Nota: En el código anterior solo .py
se abrirán archivos de tipos (archivos python). Para abrir un tipo específico de archivos, uno tiene que mencionarlo en la opción de tipos de archivo junto con su extensión como se hizo en el código anterior.
Publicación traducida automáticamente
Artículo escrito por sanjeev2552 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA