Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

bakalegum_ a écrit :

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 smile 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 tongue

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 tongue )

#! /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 wink
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_

Re : Traitement par lot des extentions du nom de fichier

mais euh! tongue

roll

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! big_smile
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. wink

Hors ligne