Jump to content

Postagens Recomendadas

Postado

Boa noite a todos gostaria de saber se alguém tem um código no panda para procurar em várias pastas e por músicas em MP3 repetidas e mover para outra pasta, exemplo verificar em todas as pastas sem existi músicas repetidas 

  • Curtir 1
  • 6 months later...
Postado

@Marcelo Marques

import os
import pandas as pd
import shutil
from hashlib import md5

# Função para calcular o hash de um arquivo, para verificar se são iguais
def calcular_hash(arquivo):
    hasher = md5()
    with open(arquivo, 'rb') as f:
        while chunk := f.read(8192):
            hasher.update(chunk)
    return hasher.hexdigest()

# Função para buscar arquivos MP3 em várias pastas
def buscar_mp3(diretorio_inicial):
    arquivos_mp3 = []
    for raiz, diretorios, arquivos in os.walk(diretorio_inicial):
        for arquivo in arquivos:
            if arquivo.lower().endswith(".mp3"):
                caminho_completo = os.path.join(raiz, arquivo)
                hash_arquivo = calcular_hash(caminho_completo)
                arquivos_mp3.append((arquivo, caminho_completo, hash_arquivo))
    return arquivos_mp3

# Função para mover arquivos repetidos para outra pasta
def mover_arquivos_repetidos(arquivos_mp3, pasta_destino):
    df = pd.DataFrame(arquivos_mp3, columns=['Nome', 'Caminho', 'Hash'])
    
    # Identificar arquivos duplicados com base no hash
    duplicados = df[df.duplicated(subset='Hash', keep=False)]
    
    if not duplicados.empty:
        os.makedirs(pasta_destino, exist_ok=True)
        for index, row in duplicados.iterrows():
            caminho_original = row['Caminho']
            nome_arquivo = row['Nome']
            caminho_novo = os.path.join(pasta_destino, nome_arquivo)
            
            # Verificar se já existe um arquivo com o mesmo nome na pasta destino
            if os.path.exists(caminho_novo):
                nome_arquivo = f"copia_{index}_{nome_arquivo}"
                caminho_novo = os.path.join(pasta_destino, nome_arquivo)
            
            shutil.move(caminho_original, caminho_novo)
            print(f"Arquivo movido: {nome_arquivo}")

# Diretório onde estão as músicas
diretorio_inicial = "C:/caminho_para_suas_musicas"
# Pasta destino para as músicas repetidas
pasta_destino = "C:/caminho_para_arquivos_repetidos"

# Buscar músicas MP3 no diretório inicial
arquivos_mp3 = buscar_mp3(diretorio_inicial)

# Mover arquivos duplicados para a pasta de destino
mover_arquivos_repetidos(arquivos_mp3, pasta_destino)

 

  • Ajudou! 1
  • Casa do Desenvolvedor mudou o título para Como encontrar e mover músicas MP3 repetidas em várias pastas usando Python?

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...