Advertisement
MizunoBrasil

Organizador de Arquivos

Jun 26th, 2023
730
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.88 KB | None | 0 0
  1. import os
  2. import shutil
  3. import tkinter as tk
  4. from tkinter import messagebox
  5. from datetime import datetime
  6. import webbrowser
  7.  
  8. def mover_arquivos():
  9.     diretorio_origem = os.getcwd()
  10.     log = []
  11.  
  12.     if video_var.get():
  13.         diretorio_destino_videos = os.path.join(diretorio_origem, 'Videos')
  14.         if not os.path.exists(diretorio_destino_videos):
  15.             os.mkdir(diretorio_destino_videos)
  16.         arquivos_movidos_videos = 0
  17.  
  18.     if imagem_var.get():
  19.         diretorio_destino_imagens = os.path.join(diretorio_origem, 'Imagens')
  20.         if not os.path.exists(diretorio_destino_imagens):
  21.             os.mkdir(diretorio_destino_imagens)
  22.         arquivos_movidos_imagens = 0
  23.  
  24.     if musica_var.get():
  25.         diretorio_destino_musicas = os.path.join(diretorio_origem, 'Músicas')
  26.         if not os.path.exists(diretorio_destino_musicas):
  27.             os.mkdir(diretorio_destino_musicas)
  28.         arquivos_movidos_musicas = 0
  29.  
  30.     if documento_var.get():
  31.         diretorio_destino_documentos = os.path.join(diretorio_origem, 'Documentos')
  32.         if not os.path.exists(diretorio_destino_documentos):
  33.             os.mkdir(diretorio_destino_documentos)
  34.         arquivos_movidos_documentos = 0
  35.  
  36.     if icones_var.get():
  37.         diretorio_destino_icones = os.path.join(diretorio_origem, 'Ícones')
  38.         if not os.path.exists(diretorio_destino_icones):
  39.             os.mkdir(diretorio_destino_icones)
  40.         arquivos_movidos_icones = 0
  41.  
  42.     if compactados_var.get():
  43.         diretorio_destino_compactados = os.path.join(diretorio_origem, 'Arquivos Compactados')
  44.         if not os.path.exists(diretorio_destino_compactados):
  45.             os.mkdir(diretorio_destino_compactados)
  46.         arquivos_movidos_compactados = 0
  47.  
  48.     if php_var.get():
  49.         diretorio_destino_php = os.path.join(diretorio_origem, 'PHP')
  50.         if not os.path.exists(diretorio_destino_php):
  51.             os.mkdir(diretorio_destino_php)
  52.         arquivos_movidos_php = 0
  53.  
  54.     if iso_var.get():
  55.         diretorio_destino_iso = os.path.join(diretorio_origem, 'ISO')
  56.         if not os.path.exists(diretorio_destino_iso):
  57.             os.mkdir(diretorio_destino_iso)
  58.         arquivos_movidos_iso = 0
  59.  
  60.     for arquivo in os.listdir(diretorio_origem):
  61.         if video_var.get() and arquivo.lower().endswith(('.mkv', '.mp4', '.avi', '.flv')):
  62.             caminho_origem = os.path.join(diretorio_origem, arquivo)
  63.             caminho_destino = os.path.join(diretorio_destino_videos, arquivo)
  64.             shutil.move(caminho_origem, caminho_destino)
  65.             arquivos_movidos_videos += 1
  66.             log.append((arquivo, 'Videos'))
  67.  
  68.         if imagem_var.get() and arquivo.lower().endswith(('.jpg', '.png', '.gif')):
  69.             caminho_origem = os.path.join(diretorio_origem, arquivo)
  70.             caminho_destino = os.path.join(diretorio_destino_imagens, arquivo)
  71.             shutil.move(caminho_origem, caminho_destino)
  72.             arquivos_movidos_imagens += 1
  73.             log.append((arquivo, 'Imagens'))
  74.  
  75.         if musica_var.get() and arquivo.lower().endswith(('.mp3', '.wav')):
  76.             caminho_origem = os.path.join(diretorio_origem, arquivo)
  77.             caminho_destino = os.path.join(diretorio_destino_musicas, arquivo)
  78.             shutil.move(caminho_origem, caminho_destino)
  79.             arquivos_movidos_musicas += 1
  80.             log.append((arquivo, 'Músicas'))
  81.  
  82.         if documento_var.get() and arquivo.lower().endswith(('.docx', '.xlsx', '.pdf', '.txt')):
  83.             caminho_origem = os.path.join(diretorio_origem, arquivo)
  84.             caminho_destino = os.path.join(diretorio_destino_documentos, arquivo)
  85.             shutil.move(caminho_origem, caminho_destino)
  86.             arquivos_movidos_documentos += 1
  87.             log.append((arquivo, 'Documentos'))
  88.  
  89.         if icones_var.get() and arquivo.lower().endswith('.ico'):
  90.             caminho_origem = os.path.join(diretorio_origem, arquivo)
  91.             caminho_destino = os.path.join(diretorio_destino_icones, arquivo)
  92.             shutil.move(caminho_origem, caminho_destino)
  93.             arquivos_movidos_icones += 1
  94.             log.append((arquivo, 'Ícones'))
  95.  
  96.         if compactados_var.get() and arquivo.lower().endswith(('.zip', '.rar')):
  97.             caminho_origem = os.path.join(diretorio_origem, arquivo)
  98.             caminho_destino = os.path.join(diretorio_destino_compactados, arquivo)
  99.             shutil.move(caminho_origem, caminho_destino)
  100.             arquivos_movidos_compactados += 1
  101.             log.append((arquivo, 'Arquivos Compactados'))
  102.  
  103.         if php_var.get() and arquivo.lower().endswith(('.php', '.sql')):
  104.             caminho_origem = os.path.join(diretorio_origem, arquivo)
  105.             caminho_destino = os.path.join(diretorio_destino_php, arquivo)
  106.             shutil.move(caminho_origem, caminho_destino)
  107.             arquivos_movidos_php += 1
  108.             log.append((arquivo, 'PHP'))
  109.  
  110.         if iso_var.get() and arquivo.lower().endswith('.iso'):
  111.             caminho_origem = os.path.join(diretorio_origem, arquivo)
  112.             caminho_destino = os.path.join(diretorio_destino_iso, arquivo)
  113.             shutil.move(caminho_origem, caminho_destino)
  114.             arquivos_movidos_iso += 1
  115.             log.append((arquivo, 'ISO'))
  116.  
  117.     mensagem = ""
  118.     if video_var.get():
  119.         mensagem += f'{arquivos_movidos_videos} arquivo(s) de vídeo movido(s) para a subpasta "Videos".\n'
  120.     if imagem_var.get():
  121.         mensagem += f'{arquivos_movidos_imagens} arquivo(s) de imagem movido(s) para a subpasta "Imagens".\n'
  122.     if musica_var.get():
  123.         mensagem += f'{arquivos_movidos_musicas} arquivo(s) de música movido(s) para a subpasta "Músicas".\n'
  124.     if documento_var.get():
  125.         mensagem += f'{arquivos_movidos_documentos} arquivo(s) de documento movido(s) para a subpasta "Documentos".\n'
  126.     if icones_var.get():
  127.         mensagem += f'{arquivos_movidos_icones} arquivo(s) de ícone movido(s) para a subpasta "Ícones".\n'
  128.     if compactados_var.get():
  129.         mensagem += f'{arquivos_movidos_compactados} arquivo(s) compactado(s) movido(s) para a subpasta "Arquivos Compactados".\n'
  130.     if php_var.get():
  131.         mensagem += f'{arquivos_movidos_php} arquivo(s) de PHP movido(s) para a subpasta "PHP".\n'
  132.     if iso_var.get():
  133.         mensagem += f'{arquivos_movidos_iso} arquivo(s) ISO movido(s) para a subpasta "ISO".\n'
  134.  
  135.     data_hora = datetime.now().strftime('%d-%m-%Y-%H-%M-%S')
  136.     nome_arquivo_log = f'log-{data_hora}.txt'
  137.     with open(nome_arquivo_log, 'a') as arquivo_log:
  138.         arquivo_log.write(f'Registro de movimentação de arquivos ({data_hora.replace("-", " ")})\n')
  139.         for item in log:
  140.             arquivo_log.write(f'{item[0]} movido para a pasta {item[1]}\n')
  141.         arquivo_log.write('\n')
  142.  
  143.     messagebox.showinfo('Concluído', mensagem)
  144.  
  145. def abrir_link():
  146.     webbrowser.open('https://www.youtube.com/@neptunus3913')
  147.  
  148. root = tk.Tk()
  149. root.title('Organizador de Arquivos')
  150. root.geometry('400x500')
  151. root.resizable(False, False)
  152.  
  153. largura_tela = root.winfo_screenwidth()
  154. altura_tela = root.winfo_screenheight()
  155. pos_x = (largura_tela - root.winfo_reqwidth()) // 2
  156. pos_y = (altura_tela - root.winfo_reqheight()) // 2
  157. root.geometry(f"+{pos_x}+{pos_y}")
  158.  
  159. video_var = tk.BooleanVar()
  160. imagem_var = tk.BooleanVar()
  161. musica_var = tk.BooleanVar()
  162. documento_var = tk.BooleanVar()
  163. icones_var = tk.BooleanVar()
  164. compactados_var = tk.BooleanVar()
  165. php_var = tk.BooleanVar()
  166. iso_var = tk.BooleanVar()
  167.  
  168. rotulo_instrucoes = tk.Label(root, text='Selecione os tipos de arquivos que deseja mover\npara as sub-pastas', font=('Arial', 12))
  169. rotulo_instrucoes.pack(pady=10)
  170.  
  171. check_video = tk.Checkbutton(root, text='Videos', variable=video_var, font=('Arial', 12))
  172. check_video.pack(anchor='w')
  173. check_imagem = tk.Checkbutton(root, text='Imagens', variable=imagem_var, font=('Arial', 12))
  174. check_imagem.pack(anchor='w')
  175. check_musica = tk.Checkbutton(root, text='Músicas', variable=musica_var, font=('Arial', 12))
  176. check_musica.pack(anchor='w')
  177. check_documento = tk.Checkbutton(root, text='Documentos', variable=documento_var, font=('Arial', 12))
  178. check_documento.pack(anchor='w')
  179. check_icones = tk.Checkbutton(root, text='Ícones', variable=icones_var, font=('Arial', 12))
  180. check_icones.pack(anchor='w')
  181. check_compactados = tk.Checkbutton(root, text='Arquivos Compactados', variable=compactados_var, font=('Arial', 12))
  182. check_compactados.pack(anchor='w')
  183. check_php = tk.Checkbutton(root, text='PHP', variable=php_var, font=('Arial', 12))
  184. check_php.pack(anchor='w')
  185. check_iso = tk.Checkbutton(root, text='ISO', variable=iso_var, font=('Arial', 12))
  186. check_iso.pack(anchor='w')
  187.  
  188. botao_mover = tk.Button(root, text='Mover Arquivos', command=mover_arquivos, font=('Arial', 14))
  189. botao_mover.pack(pady=20)
  190.  
  191. label_by = tk.Label(root, text='2023 ©Neptunus', font=('Arial', 12), fg='blue', cursor='hand2')
  192. label_by.pack(side=tk.BOTTOM, anchor=tk.SE, padx=10, pady=10)
  193. label_by.bind('<Button-1>', lambda e: abrir_link())
  194.  
  195. root.mainloop()
  196.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement