Je souhaite supprimer de vieux fichiers Zip d'un répertoire basé sur le nom de fichier lorsque la date créée ne peut pas être prise en compte
E.g. p> résultat final: p> Je suis Toudre pour lire les 23 premiers caractères et s'il correspond à la seconde, puis comparez le fichier1 à FILE2. Si la valeur est fausse, alors appendez-la à la liste et à la supprimer éventuellement. p> perdu de conserver la valeur du premier fichier et de continuer à vérifier. p> p>
3 Réponses :
Ce qui suit devrait vous donner le résultat final souhaité.
import os source = r"C:\Users\Pyhton" file_names = os.listdir(source) latest_files = {} for file_name in file_names: name_parts = file_name.split("_") date_stamp = name_parts[1] if date_stamp not in latest_files or file_name > latest_files[date_stamp]: latest_files[date_stamp] = file_name keep_files = latest_files.values() for file_name in file_names: if file_name in keep_files: continue os.remove(os.path.join(source, file_name))
Bonjour Dusan, merci beaucoup pour vous aider. Malheureusement, il s'agit de NPO travailler et peut-être que nous avons manqué d'ajouter Date_Stamp. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------------------------------------- APPEL DE LA LIERHON-INPUT-71-E3A4DE830318> IN
Tout près. J'ai fait petite erreur dans le nom du fichier lors du téléchargement de cette, les fichiers source ====================== PyhtonReport_20180404_567_03.zip PyhtonReport_20180404_567_02.zip PyhtonReport_20180404_567_01.zip PyhtonReport_20181221_145_02.zip PyhtonReport_20181221_145_01.zip Pyhtonrepor_20180816_345_01.zip End Résultat ============================== PYHTONREPORTE_20180404_567_03.ZIP PYHTONREPORTE_20181221_145_02.ZIP PYHTONREPORTE_20180816_345_01.ZIP Nous devons prendre en compte les 1er et 2e entrées après la scission. Est-ce que c'est faisable?
Fait .. j'ai ajouté une autre chaîne date_stamp = name_parts [1] + nom_parts [2]
Edit: Désolé, j'ai raté la partie de garder certaines d'entre elles!
import glob import os files = glob.glob('path/to/old/files/common_part_of_files_names*.zip') groups = set([f[:21] for f in files]) for group in groups: versions = [f for f in files if f.starts_with(group)] versions.remove(max(versions)) # pop latest for v in versions: os.remove(v)
Besoin d'ajouter des conditions. À ce moment, le code ci-dessus supprimer simplement tous les fichiers.
Désolé, je ne pouvais pas te sentir. et son utilisation p>