renommer des fichiers en utilisant les expression régulière
Bonjour à tous,
j'essaye de renommer des fichiers ayant la structure suivante:
XXXX_(nom d'origine)-suffixe.extension (où X correspond à un chiffre)
en: (nom modifié)-suffixe.extension à partir de listes de correspondance entre nom d'origine et nom modifié.
En tulisant os.rename() Pas de problèmes pour ce qui est de rechercher les fichiers correspondants via des expression régulières par contre je n'arrive pas à trouver comment supprimer le préfixe "XXXX_" dans tout les noms de fichiers via une expression régulière (ce qui m'éviterai d'avoir à connaitre le préfixe pour chaque fichier et de les supprimer)
Voiçi le code (sans doute affreux) que j'ai jusque là:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#!/usr/bin/python
# -*- coding:Utf-8 -*-
import os
import re
#Liste recuperant les fichiers a renommer
Liste=[]
#Liste contenant les nouveaux noms des fichiers
ListeNouveauNom=[]
#Liste contenant les anciens noms des fichiers
ListeAncienNom=[]
#fichier source:
#Créer liste des dossier
Liste = os.listdir("/media/DATA/ysevellec/script_test/")
#ancien noms prend les noms à changer et
FichierAncien = open('AncienNom.txt', 'r') #nom du fichier contenant les noms à changer
for line in FichierAncien:
ListeAncienNom.append(line.strip())
FichierNouveau = open('NouveauNom.txt', 'r') #fichier contenant les nouveaux noms
for line in FichierNouveau:
ListeNouveauNom.append(line.strip())
#renommer les fichiers à partir des deux listes
for i in range(0,len(ListeAncienNom)):
rech=re.compile("^(.){4}_"+ListeAncienNom[i]+".txt")
for fichier in os.listdir("/media/DATA/ysevellec/script_test/"):
if rech.match(fichier):
print(ListeAncienNom[i]+" trouvé") #test du module
try:
os.rename("prefixe"+ListeAncienNom[i]+".txt",ListeNouveauNom[i]+".fastq")
except:
print ListeAncienNom[i]+" n'a pas été renommé" |
comment puis modifier la boucle de changement de nom pour lui permettre de recherche l'expression régulière "^(.){4}_" au lieu de "prefixe"?
merci d'avance pour vos conseils.