Bonjour,

J'ai un problème dans un script qui doit effacer des fichiers en fonction de la comparaison de deux listes de chemins d'accès aux fichiers.
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
import os.path
import re

garder = open('D:\\Etudes\\donnes_CFAL_SUD\\donnees_liste_agarder.txt', 'r')
agarder = garder.readlines()
actuel = open('D:\\Etudes\\donnes_CFAL_SUD\\donnees_liste_tout.txt', 'r')
aactuel = actuel.readlines()
m = 0
x = 0
for i in aactuel:
    valid = 0
    for j in agarder:
        ###Nous extrayons le nom du fichier
        fichier_agarder = os.path.basename(j)
        fichier_actuel = os.path.basename(i)
        ##Nous comparons les nom de fichiers de la liste aactuel ? la liste agarder
        ##si la variable valid reste
        if fichier_agarder == fichier_actuel:
            valid = 1
            x += 1
            fichier_garde = re.sub('\n' , '', i)
            print 'on garde' + fichier_garde
    if valid == 0:
        ##nous extrayons le chemin du fichier ? supprimer sans l'extension
        fichier_suppr = re.sub('\n' , '', i)
        ##suppression des fichiers not?s en doublons
        try :
            os.remove(fichier_suppr)
            print 'le fichier que l on vire est: ' + fichier_suppr
            m += 1
        except:
            print 'le fichier n a pas ete supprime:' + fichier_suppr
        ##suppression des r?pertoires vides
        ##nous recuperons dans un premier temps le nom du repertoire sans le nom du fichier
        ##nous supprimons le repertoire si il est vide
##        repertoire = os.path.dirname(i)
##        print repertoire
##        os.rmdir(repertoire)

print 'on vire ' + str(m) + ' fichiers'
print 'on garde: ' + str(x) + ' fichiers '
J'ai un problème avec le os.remove(fichier_suppr) car je pense que j'ai des backslash qui posent problème dans ma variable fichier_suppr. Cette variable contient des chemins ou les backslash ne sont pas doublés.
D'ou ma question "Comment doubler les backslash \\ dans une variable de type chaine?" j'ai vu qu'il existe des raw imput mais je n'ai pas trouvé comment les appliquer à une variable.
merci