Todos los que lean esta publicación son muy conscientes de la importancia de copiar el archivo o mover el archivo de una ubicación específica a otra. En esta publicación, hemos tratado de explicar no solo el programa, sino que hemos agregado algunas piezas interesantes de la interfaz. Hasta ahora, muchos de ustedes pueden entender de lo que estamos hablando. Sí, tienes razón, vamos a usar «Tkinter» y «shutil» para este proyecto. Entonces lo comenzaremos instalando paquetes.
Módulos Requeridos:
- shutil: el módulo shutil de Python nos permite operar con objetos de archivo fácilmente y sin sumergirnos mucho en los objetos de archivo. Se ocupa de la semántica de bajo nivel, como la creación de objetos de archivo, el cierre de los archivos una vez que se copian y nos permite centrarnos en la lógica comercial de nuestro programa. shutil es la biblioteca nativa, no necesita instalarla externamente, solo importe, mientras la usa.
- tkinter: Tkinter es un enlace de Python al kit de herramientas de la GUI de Tk. Es la interfaz estándar de Python para el kit de herramientas Tk GUI o, en palabras simples, Tkinter se usa como una interfaz gráfica de usuario de Python. Tkinter también es la biblioteca nativa, no necesita instalarla externamente, solo importe, mientras la usa.
La GUI se vería como la siguiente imagen:
A continuación se muestra la implementación:
Python3
# Importing necessary packages import shutil import tkinter as tk from tkinter import * from tkinter import messagebox, filedialog # Defining CreateWidgets() function to # create necessary tkinter widgets def CreateWidgets(): link_Label = Label(root, text ="Select The File To Copy : ", bg = "#E8D579") link_Label.grid(row = 1, column = 0, pady = 5, padx = 5) root.sourceText = Entry(root, width = 50, textvariable = sourceLocation) root.sourceText.grid(row = 1, column = 1, pady = 5, padx = 5, columnspan = 2) source_browseButton = Button(root, text ="Browse", command = SourceBrowse, width = 15) source_browseButton.grid(row = 1, column = 3, pady = 5, padx = 5) destinationLabel = Label(root, text ="Select The Destination : ", bg ="#E8D579") destinationLabel.grid(row = 2, column = 0, pady = 5, padx = 5) root.destinationText = Entry(root, width = 50, textvariable = destinationLocation) root.destinationText.grid(row = 2, column = 1, pady = 5, padx = 5, columnspan = 2) dest_browseButton = Button(root, text ="Browse", command = DestinationBrowse, width = 15) dest_browseButton.grid(row = 2, column = 3, pady = 5, padx = 5) copyButton = Button(root, text ="Copy File", command = CopyFile, width = 15) copyButton.grid(row = 3, column = 1, pady = 5, padx = 5) moveButton = Button(root, text ="Move File", command = MoveFile, width = 15) moveButton.grid(row = 3, column = 2, pady = 5, padx = 5) def SourceBrowse(): # Opening the file-dialog directory prompting # the user to select files to copy using # filedialog.askopenfilenames() method. Setting # initialdir argument is optional Since multiple # files may be selected, converting the selection # to list using list() root.files_list = list(filedialog.askopenfilenames(initialdir ="C:/Users/AKASH / Desktop / Lockdown Certificate / Geek For Geek")) # Displaying the selected files in the root.sourceText # Entry using root.sourceText.insert() root.sourceText.insert('1', root.files_list) def DestinationBrowse(): # Opening the file-dialog directory prompting # the user to select destination folder to # which files are to be copied using the # filedialog.askopendirectory() method. # Setting initialdir argument is optional destinationdirectory = filedialog.askdirectory(initialdir ="C:/Users/AKASH / Desktop / Lockdown Certificate / Geek For Geek") # Displaying the selected directory in the # root.destinationText Entry using # root.destinationText.insert() root.destinationText.insert('1', destinationdirectory) def CopyFile(): # Retrieving the source file selected by the # user in the SourceBrowse() and storing it in a # variable named files_list files_list = root.files_list # Retrieving the destination location from the # textvariable using destinationLocation.get() and # storing in destination_location destination_location = destinationLocation.get() # Looping through the files present in the list for f in files_list: # Copying the file to the destination using # the copy() of shutil module copy take the # source file and the destination folder as # the arguments shutil.copy(f, destination_location) messagebox.showinfo("SUCCESSFUL") def MoveFile(): # Retrieving the source file selected by the # user in the SourceBrowse() and storing it in a # variable named files_list''' files_list = root.files_list # Retrieving the destination location from the # textvariable using destinationLocation.get() and # storing in destination_location destination_location = destinationLocation.get() # Looping through the files present in the list for f in files_list: # Moving the file to the destination using # the move() of shutil module copy take the # source file and the destination folder as # the arguments shutil.move(f, destination_location) messagebox.showinfo("SUCCESSFUL") # Creating object of tk class root = tk.Tk() # Setting the title and background color # disabling the resizing property root.geometry("830x120") root.title("Copy-Move GUI") root.config(background = "black") # Creating tkinter variable sourceLocation = StringVar() destinationLocation = StringVar() # Calling the CreateWidgets() function CreateWidgets() # Defining infinite loop root.mainloop()
Producción:
Publicación traducida automáticamente
Artículo escrito por akash_kumar_singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA