Advertisement
MizunoBrasil

Barra de Progresso em Python

Jun 30th, 2023 (edited)
1,090
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.56 KB | None | 0 0
  1. #Barra de Progresso em Python que mostra cópia de arquivo atualizada em tempo praticamente real.
  2. #Se o tamanho do arquivo for maior o tempo de progresso, o procedimento de cópia demora mais tempo (não é simulado)
  3.  
  4.  
  5. from tkinter import *
  6. from tkinter import ttk
  7. from tkinter import messagebox
  8. import shutil
  9. import os
  10.  
  11. root = Tk()
  12. root.title("Barra de Progresso - Mizuno")
  13. root.geometry("500x400")
  14.  
  15. def copy_file():
  16.     source_file = "D:\\nome-do-arquivo.mp4"
  17.     destination_file = "E:\\nome-do-arquivo.mp4"    
  18.  
  19.     progress1['value'] = 0
  20.     root.update_idletasks()
  21.  
  22.     # Obtém o tamanho total do arquivo para calcular o progresso
  23.     total_size = os.path.getsize(source_file)
  24.     bytes_copied = 0
  25.  
  26.     with open(source_file, "rb") as src, open(destination_file, "wb") as dst:
  27.         while True:
  28.             # Lê e escreve em blocos para melhor desempenho
  29.             buf = src.read(4096)
  30.             if not buf:
  31.                 break
  32.  
  33.             dst.write(buf)
  34.             bytes_copied += len(buf)
  35.  
  36.             # Calcula o progresso e atualiza a barra de progresso
  37.             progress = (bytes_copied / total_size) * 100
  38.             progress1['value'] = progress
  39.             root.update_idletasks()
  40.  
  41.     progress1['value'] = 100
  42.     root.update_idletasks()
  43.  
  44.     messagebox.showinfo("Sucesso", "Arquivo copiado com sucesso!")
  45.  
  46. progress1 = ttk.Progressbar(root, orient=HORIZONTAL, length=300, mode='determinate')
  47. progress1.pack(pady=20)
  48.  
  49. button = Button(root, text="Copiar Arquivo", command=copy_file)
  50. button.pack(pady=20)
  51.  
  52. root.mainloop()
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement