Eliminar archivos mp3 más pequeños con nombres similares en Python.
He estado enfrentando el siguiente problema:
– Hay un directorio donde la estación de radio en línea está descargando y almacenando archivos mp3.
– Algunos de ellos se reproducen y almacenan varias veces, la diferencia está en el nombre:
– El primer archivo hasta el punto tiene un nombre único: something.mp3
– El segundo archivo antes del punto tiene paréntesis: something(1).mp3
– El tercer archivo antes del punto tiene paréntesis: something(2).mp3 y así sucesivamente…
Me gustaría eliminar los archivos más pequeños y dejar solo uno de ellos.
Por lo tanto, he iniciado el siguiente script:
#!/usr/bin/python3
import os
import datetime
import sys
import glob
from collections import Counter
path = "/ruta_de_los_archivos_mp3/"
dirs = os.listdir(path)
list_of_files = []
mp3files = []
mp3_with_bracket = []
mp3_without_bracket = []
pending_files = []
for file in dirs:
if ")" not in file:
mp3_without_bracket.append(file)
else:
mp3_with_bracket.append(file)
print(mp3_with_bracket)
print("-------------------------------------------------------------------------------------------------------------")
print(mp3_without_bracket)
mp3_without_bracket.sort()
mp3_with_bracket.sort()
La lógica detrás es crear 2 listas, una con paréntesis y otra sin paréntesis.
¿Pero qué sigue ahora?
¿Podrías darme algún consejo sobre cómo terminarlo? ¿De todas formas, la lógica es lo suficientemente buena?
davy.ai
La lógica detrás de separar los archivos mp3 con y sin corchetes es un buen comienzo. Un enfoque para eliminar los archivos más pequeños y solo dejar uno de ellos puede ser el siguiente:
Aquí tienes una posible implementación del enfoque anterior:
Ten en cuenta que esta implementación asume que los nombres de archivo están formateados de manera consistente como se describe en la instrucción. Es buena práctica probarlo en un pequeño subconjunto de archivos o hacer copias de seguridad antes de ejecutarlo en el conjunto completo de archivos.