#1 Le 19/11/2006, à 21:22
- pj23
Traitement par lot des extentions du nom de fichier
Bonjour,
je ne suis pas très familarisé avec linux, je viens de migré depuis 1 mois donc je galère avec de foutu reflex "XP" désolé
Mon problème est de modifié par lot les extentions de fichiers .jpg en .jpeg
Car il me semble que c'est la seul solution pour un affichage correcte dans F-Spot et leur reconnaisance
dans les apperçu de celui-ci
J'ai essaie ça marche mais j'ai 5000 photos a renommée
AU SECOUR !!! c'est très long une par une d'inseré un "E" dans l'extention
si quelqu'un à la solution elle serait la bienvenue et qu'il en soit remercié chaudement
merci à tous de me répondre même dans la négative c'est un grand moment de solitude
et je ne voudrais pas revenir dans le giron de "MS" ce serait du "SM"
A++
Toshiba satellite M60 17pouces sous unbuntu 6.06 lts Dapper Drake
Celui qui "est" n' a rien à perdre il a tout à donner. Celui qui "veut" peut tout perdre, car il n'a rien à faire partager. (Pour Bilou) ;)
Hors ligne
#2 Le 19/11/2006, à 21:42
- zanoni
Re : Traitement par lot des extentions du nom de fichier
Cela doit exister. Tu dois rechercher du côté des scripts "Nautilus". Google est ton ami.
http://contrib.coffee.free.fr/index.php?2006/09/14/9-nautilus-script
De mon côté j'utilise aussi F-spot et je ne rencontre pas de problème avec les images avec l'extension jpg.
Hors ligne
#3 Le 19/11/2006, à 21:59
- bakalegum_
Re : Traitement par lot des extentions du nom de fichier
si tu veux je peux te faire un petit script en python, je suis mega debutant mais c est tout a fait faisable
Hors ligne
#4 Le 19/11/2006, à 22:45
- pj23
Re : Traitement par lot des extentions du nom de fichier
si tu veux je peux te faire un petit script en python, je suis mega debutant mais c est tout a fait faisable
Merci de la proposition, elle me semble très séduisante d'autant que je suis loin de maitriser parfaitement
le système d'exploitation unbutu, à ma grande honte je ne connais pas python donc si tu le veux bien je me remet entre tes mains d'expert
est il impératif de sauvegarder toute les photos globalement ou pouraije traiter répertoire par répertoire le changement de l'exention.
Cordialement à toi
Toshiba satellite M60 17pouces sous unbuntu 6.06 lts Dapper Drake
Celui qui "est" n' a rien à perdre il a tout à donner. Celui qui "veut" peut tout perdre, car il n'a rien à faire partager. (Pour Bilou) ;)
Hors ligne
#5 Le 19/11/2006, à 23:18
- bakalegum_
Re : Traitement par lot des extentions du nom de fichier
ok je m y met.. mais je suis loin d etre un expert j espere pouvoir te faire ca rapidement
Hors ligne
#6 Le 19/11/2006, à 23:39
- quelqu'un
Re : Traitement par lot des extentions du nom de fichier
il y a une action pour nautilus pour faire ça, regarde sur le wiki mais le mieux est d'utiliser krename (dispo dans les dépôts).
Tu peux renommer en masse les fichiers, leurs extensions, prendre tout le repertoire et ses sous-répertoires etc.
Il te suffit de sélectionner les fichiers ou dossiers (il y a une case «récursive» à cocher si tu veux tous les sous-dossiers avec) ensuite de sélectionner «renommer» puis de laisser «utiliser le nom de fichier original» et de choisir pour l'extension «nom personnalisé» dans la case à côté tu écris ton extension : jpeg (sans le point) et cliquer sur terminer.
Si tu veux en plus déplacer tes fichiers, à l'étape 2 tu choisis déplacer à la place de renommer et tu pourras ainsi déplacer et renommer tes fichiers à l'étape 3.
DE RE-RE-RETOUR... AHAH !!! Moi, l'Honorable, l'Illustrissime et vénérable, le vrai véritable et unique Quelqu'un, je viens vous montrer le chemin.
Pour s'adresser à ma personne, veuillez commencer votre discours par :
Ô sa Grandeur, son Excellence, Divinité de l'excellence, Dieu des Dieux, Roi de Toutes choses, Ô puissant esprit supérieur, nous t'implorons.
Hors ligne
#7 Le 19/11/2006, à 23:59
- bakalegum_
Re : Traitement par lot des extentions du nom de fichier
a oui je viens de tester c est super puissant.. mon script devient un peu moins urgent du coup, mais je le ferais quand meme un jour
Hors ligne
#8 Le 21/11/2006, à 08:07
- pj23
Re : Traitement par lot des extentions du nom de fichier
Merci à tous ! je pense être sur la piste de la solution grace à vous.
Toshiba satellite M60 17pouces sous unbuntu 6.06 lts Dapper Drake
Celui qui "est" n' a rien à perdre il a tout à donner. Celui qui "veut" peut tout perdre, car il n'a rien à faire partager. (Pour Bilou) ;)
Hors ligne
#9 Le 21/11/2006, à 15:49
- bakalegum_
Re : Traitement par lot des extentions du nom de fichier
bon voila je vin de faire ca, je suis assez content ca ma pris 10 minutes (bon ok c est tout con est alors )
#! /usr/bin/python
import os, string
#récupère le répertoire courant
rep = os.getcwd()
#charge les fichiers du répertoire rep = répertoire courant
liste = os.listdir(rep)
#balaye la liste de fichier
for fichier in liste:
print 'fichier',fichier
#chaque nom de fichier est décomposé en une liste si il comporte des points
fichiereclate = fichier.split('.' )
#on lit le dernier: lextension
if fichiereclate[len(fichiereclate)-1] == 'jpg':
fichiereclate[len(fichiereclate)-1] = 'jpeg'
#puis la liste est agglomérer avec un .
cool = string.joinfields(fichiereclate,'.')
#si le nom de fichier de base à été modifié,on change le nom
if fichier!=cool:
print fichier +"renommé en" + cool
os.rename(fichier,cool)
a copier dans un ficnier renom.py par exemple puis a enregister et executer dans le dossier ou se trouve les fichier
cd /home/machin/truc/laousontlesimages
python renomp.py
et voila
il suffit de remplacer jpg et jpeg pour remplacer ceque l on veut par ce que l on veut
edit: je vais regarder tout a l heure coment faire pour pouvoir renommer tous les fichiers dans une arborescence genre se emttre dans /images/ lancer le script pour qu il puisse renommer aussi dans /images/vacances/ete/plage par exemple, car s il ya bcp de dossier ca peut etre tres long.surtout que je suppose que les 5000 images ne sont pas en vrac dans le meme dossier^^
Dernière modification par bakalegum_ (Le 21/11/2006, à 15:57)
Hors ligne
#10 Le 21/11/2006, à 17:15
- pj23
Re : Traitement par lot des extentions du nom de fichier
Je n'avais jamais vue de réponse si prompte et de service amical plus complet sur un forum d'O.S.
Je persiste et signe "MS" = "SM"
Je vais menacé mes petit enfants si il ne migre pas eux aussi
( enfin pas trop y faut bien que bilou vive)
Merci encore à tous et particulièrement à bakalegum_
Toshiba satellite M60 17pouces sous unbuntu 6.06 lts Dapper Drake
Celui qui "est" n' a rien à perdre il a tout à donner. Celui qui "veut" peut tout perdre, car il n'a rien à faire partager. (Pour Bilou) ;)
Hors ligne
#11 Le 29/11/2006, à 20:44
- bakalegum_
Re : Traitement par lot des extentions du nom de fichier
bon alors etant donné que je dois moi aussi renommer qq centaine de photos je me remis sur ce code en rajoutant la recursivitée.. il suffit de lui donner un dossier, et il va faire le dossier , et tous les sous dossiers jusqu au bout pour renommer les fichiers.
il faut remplacer tout en bas dans le script chemin par /home/pseudo/foto' par exemple et le lancer, cette fois de n importe ou
#! /usr/bin/python
# doit donner tous les sous dossier d un dossier donnée
#,et remplacer tous les jpg en jpeg
import os,string
def action():
#print "go",
rep = os.getcwd()
#print 'action dans',rep
liste = os.listdir(rep)
#print 'voici ce qui va etre traité',liste
for fichier in liste:
#print 'fichier',fichier
fichiereclate = fichier.split('.' )
if fichiereclate[len(fichiereclate)-1] == 'jpg':
fichiereclate[len(fichiereclate)-1] = 'jpeg'
#print 'changement'
cool = string.joinfields(fichiereclate,'.')
if fichier != cool :
print fichier,'devient',cool
os.rename(fichier,cool)
def recursiv(chemin):
liste = listingpath(chemin)
#print liste
for x in range(len(liste)):
#print 'on va faire listpath',liste[x],'...','chemin',chemin
#print 'on tente lispath',chemin+'/'+liste[x]
recursiv(chemin+'/'+liste[x])
def listingpath(chemin):
print chemin
os.chdir(chemin)
liste = os.listdir(chemin)
liste_dossiers = trie(liste)
action()
#/raciprint liste_dossiers
return liste_dossiers
#fonction qui dune liste de dosier+fichier sort la liste des dssiers
def trie(liste):
L=[]
for x in (range(len(liste))):
if testchemin(liste[x]) == 0:
L.append(liste[x])
return L
#test si le nom est un dossier(0) ou un fichier (1)
def testchemin(nom) :
try:
os.listdir(nom)
except:
x=1
else:
x=0
#print 'prout'
return x
if __name__ == '__main__':
# remplacer chemin par le chemin ou se trouve les fichiers a renommer ex /home/pseudo/photo
# il faut bien laisser les '
recursiv('chemin')
todo: reprendre tout le code avec mentalité "objet" et faire interface pyGTK.. bientot
bug: n aime pas qd il ya des "racourcies" qui le font tourner en boucle indefiniement
Dernière modification par bakalegum_ (Le 29/11/2006, à 20:59)
Hors ligne
#12 Le 04/12/2006, à 18:04
- Santa
Re : Traitement par lot des extentions du nom de fichier
rename combiné avec find peut faire ça...
Exemple:
find . -name *.jpg -exec rename 's/.jpg$/.jpeg/' {} \;
Non ?
S'il n'y a pas de réponse simple, c'est peut-être que le problème est compliqué...
Hors ligne
#13 Le 04/12/2006, à 20:12
- bakalegum_
Hors ligne
#14 Le 30/12/2007, à 18:28
- gtkshroom
Re : Traitement par lot des extentions du nom de fichier
Super efficace la méthode!!! J'adore!
Bon boulot, j'avais justement besoin de cette méthode sans passer par l'affreux Windows. Je garde ce script, il peut m'être très utile.
Hors ligne