IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

question raw string


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Par défaut question raw string
    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

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Par défaut
    j'ai essayé aussi ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichier_suppr = re.sub('\\' , '\\\\', i)
    mais j'ai une erreur

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Par défaut
    Bonjour,

    As tu essayé de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    os.remove(os.path.abspath(fichSuppr))
    le abspath te permet d'obtenir un chemin absolu normalisé.

    Sinon et certainement le plus important; le readlines te fait une liste de chaine se terminant par des \n.
    Je te conseille donc de balancer un
    et idem pour j, afin de supprimer les blancs et les caractères de fin de lignes qui peuvent te gener.

    A+

    See++

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Par défaut
    merci see++
    j'ai vais essayer ces deux fonctions. Je vous tiens au courant concernant le fonctionnement de ces deux fonctions.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Par défaut
    bonjour,

    J'ai essayé les deux fonctions see++ tout marche à merveille.

    merci

  6. #6
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Utilise des slash.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    f = open('d:/foo/bar.txt')
    Moins de trouble.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelques question sur string
    Par devatt dans le forum Débuter
    Réponses: 5
    Dernier message: 24/12/2008, 10h11
  2. Problème hexa / asci / string / raw string
    Par Dazdh dans le forum Général Python
    Réponses: 1
    Dernier message: 25/02/2008, 13h42
  3. Question sur String variable = new String( )
    Par beegees dans le forum Langage
    Réponses: 12
    Dernier message: 14/05/2007, 21h38
  4. Question simple string[] et string
    Par SrK dans le forum Langage
    Réponses: 10
    Dernier message: 14/04/2006, 15h41
  5. Les raw strings
    Par c_kiki dans le forum Général Python
    Réponses: 1
    Dernier message: 11/11/2004, 13h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo