Renommer fichier en seulement gardant une partie du nom.

Fermé
Juliette - 12 mai 2016 à 17:26
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 mai 2016 à 09:41
Bonjour,

J'ai besoin de renommer des fichiers d'images qui se présentent ainsi :

LC81960302015313LGN00_B1.tif
LC81960302015313LGN00_B11.tif

En ne gardant que la date et le numéro de la bande ce qui donnerait :
2015313_B1.tif
2015313_B11.tif

Je voudrais donc supprimer toute la première partie, mais aussi et seulement les caractères 18 à 21.

J'essaye actuellement de travailler le script suivant :



import os, glob,


path = "/moi/Desktop/Nouveau dossier"
listeFichiers=glob.glob("/moi/Desktop/Nouveau dossier/*.tif")
print(listeFichiers)
for fichier in listeFichiers:
os.rename(fichier, path+"\\"+os.path.basename(fichier)[9:])


J'arrive bien à supprimer le début de la chaine mais après je n'arrive plus à rien, je n'ai pas trouvé de réponse à ma question en faisant des recherches, alors que ça doit être tout simple (surement trop pour que je ne trouve pas de réponse).

Merci par avance de vos réponses !

Juliette







1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
13 mai 2016 à 09:41
Bonjour,

Tu peux passer sinon pour les regexp.
Exemple :
import re

a="LC81960302015313LGN00_B1.tif"
m=re.match('.*(2015\d+)\w+(_.*)',a) 

print ''.join(m.group(1,2))
>  2015313_B1.tif

0