Bonjour,

Je commence en Python.
Après un essai en batch j'ai vite vu les limites.

Je voulais comparer des noms de fichiers avec des extensions différentes.
Déplacer les fichiers avec un nom identique dans un même répertoire.
Après j'ai des fichiers qui sont presque identiques et j'arrive pas plus que çà à gérer :/

Voici mon code ... un peu d'indulgence et des conseils pour optimiser et apprendre ... merci

listdir (dossier,fic,extension):
Fais la liste des fichiers d'un dossier avec une extension particulière.
Vire ceux qui n'ont pas l'extension recherchée
Renomme l'extension en minuscule

compare(dirRom,dirVid,ficRom,ficVid):
Compare les noms de fichiers stockés dans un fichier txt et les tri

Mon problème dans mes fichiers j'ai deux fichiers ROMS "Airwolf (J).zip" "Airwolf (UE).zip" et un fichier vidéo Airwolf.flv.
Comme on le voit dans le code j'ai essayé avec "IN" et "str.find" mais rien à faire aucune commande ne trouve ...
Ah tiens je ne sais pas non plus crée une arborescence en une fois :/


Help me !!


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
import os
import shutil
import sys
import time
import string
 
tps1 = time.clock()
chemin= os.path.dirname(sys.argv[0]) #chemin de lancement du script
 
def listdir (dossier,fic,extension):
 
    path=chemin+"\\"+ dossier #chemin de lancement du script + dossier
    if not os.path.isdir(chemin+"\\Poubelle\\"): #vérifie l'existence du répertoire
        os.mkdir(chemin+"\\Poubelle\\", 777) #créé le répertoire
    if not os.path.isdir(chemin+"\\Poubelle\\"+fic): #vérifie l'existence du répertoire
        os.mkdir(chemin+"\\Poubelle\\"+fic, 777) #créé le répertoire
 
    SrcDest = open(chemin+"\\"+fic+".txt","w" ) #ouverture du fichier à la racine
 
    for dirname,subdirs,files in os.walk(path,False):
        for name in files:
            ext = os.path.splitext(name) #extension du fichier en cours
 
            #test l'extension du fichier en cours
            if ext[1] == extension: # si strictement identique (casse comprise)
                SrcDest.write(ext[0]+"\n") #écriture dans le fichier à la racine
            elif ext[1].lower() == extension: # si identique après passage en minuscule
                shutil.move(path+"\\"+ext[0]+ext[1],path+"\\"+ext[0]+ext[1].lower())
                #renomme le fichier correctement avec la casse
            else: # sinon
                shutil.move(path+"\\"+name, chemin+"\\Poubelle\\"+fic+"\\"+name)
                #déplace le fichier dont l'extension n'est pas correcte
    SrcDest.close() # ferme le fichier
 
def compare(dirRom,dirVid,ficRom,ficVid):
    if not os.path.isdir(chemin+"\\Bon"): #vérifie l'existence du répertoire
        os.mkdir(chemin+"\\Bon", 777) #créé le répertoire
 
    SrcRom=open(chemin+"\\"+ficRom,"r") #ouvre le fichier des noms de roms
    SrcVid=open(chemin+"\\"+ficVid,"r") #ouvre le fichier des noms des vidéos
 
    roms = SrcRom.readlines() #récupère les lignes du fichier
    vids = SrcVid.readlines()
 
    SrcRom.close() #ferme le fichier
    SrcVid.close()
    i=0
    for rom in roms:
        i=0
        for vid in vids:
            i = i+1
            #print("str.find(rom,vid)",str.find(rom,vid))
            #print("str.find(vid,rom)",str.find(vid,rom))
            if rom == vid: #la rom A une vidéo associée
                shutil.move(dirRom+"\\"+rom[:len(rom)-1]+".zip",chemin+"\\Bon\\"+rom[:len(rom)-1]+".zip")
                shutil.move(dirVid+"\\"+vid[:len(vid)-1]+".flv",chemin+"\\Bon\\"+vid[:len(vid)-1]+".flv")
                #break
            elif str.find(rom,vid) !=-1:
                print("Roms:",rom,"Videos:",vid)
            elif str.find(vid,rom) !=-1:
                print("Videos:",vid,"Roms:",rom)
            #elif rom in vid:
                #print("Roms:",rom,"Videos:",vid)
            #elif vid in rom:
                #print("Videos:",vid,"Roms:",rom)
 
            #elif rom != vid and i == len(vids): #la rom N'a PAS de vidéo associée
 
listdir("Roms","Roms",".zip")
listdir("Videos","Videos",".flv")
listdir("Images\\Artwork2","Pochettes",".png")
listdir("Images\\Artwork3","Cassettes",".png")
compare(chemin+"\\Roms",chemin+"\\Videos","Roms.txt","Videos.txt")
 
 
tps2 = time.clock() 
print ("Fini en ",tps2-tps1," sec.")