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 :

Ouvrir les TXT et txt ?


Sujet :

Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Ouvrir les TXT et txt ?
    Salut tout le monde,

    Voilà, je ne comprends pas, je tourne en rond sans savoir pourquoi je ne traite que les txt et non les TXT....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for fichier in os.listdir(base) :
        if os.path.splitext(fichier)[1]=='.txt' or os.path.splitext(fichier)[1]=='.TXT' : 
            Liste_fichiers.append(base+'\\'+fichier)
        if os.path.isdir(base+'\\'+ fichier):
            repertoire=base+'\\'+ fichier+'\\'
            os.chdir(repertoire)
            for fich in os.listdir(repertoire) :
                if os.path.splitext(fich)[1]=='.txt' or os.path.splitext(fichier)[1]=='.TXT' :
                    Liste_fichiers.append(repertoire+fich)
    La réponse est sous mon nez, je le sais ...

    Merci !
    l'eau coule dans le sens de la rivière

  2. #2
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if os.path.splitext(fichier)[1]=='.txt' or os.path.splitext(fichier)[1]=='.TXT'
    comme os.path.splitext(fichier)[1]=='.txt' retourne True os.path.splitext(fichier)[1]=='.TXT' n'est pas traité (voir les valeurs booléennes et and/or).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if os.path.splitext(fichier)[1] in ('.txt', '.TXT')
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if os.path.splitext(fichier)[1].lower() == '.txt'
    @+
    Merci d'utiliser le forum pour les questions techniques.

  3. #3
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    La doc qui vas avec

    @+
    Merci d'utiliser le forum pour les questions techniques.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Salut,

    Citation Envoyé par PauseKawa Voir le message
    comme os.path.splitext(fichier)[1]=='.txt' retourne True os.path.splitext(fichier)[1]=='.TXT' n'est pas traité (voir les valeurs booléennes et and/or)
    Certes mais si le nom du fichier se termine par ".TXT" le "or" devrait rendre la condition "True" => à la lecture du code, çà devrait marcher non?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    ?
    This is a short-circuit operator, so it only evaluates the second argument if the first one is False.
    Merci d'utiliser le forum pour les questions techniques.

  6. #6
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    J'ai oublié le smiley (je le mérite bien sur ce coup)
    Merci d'utiliser le forum pour les questions techniques.

  7. #7
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Par contre il y a ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            for fich in os.listdir(repertoire) :
                if os.path.splitext(fich)[1]=='.txt' or os.path.splitext(fichier)[1]=='.TXT' :
    Merci d'utiliser le forum pour les questions techniques.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Salut,

    Citation Envoyé par PauseKawa Voir le message
    J'ai oublié le smiley (je le mérite bien sur ce coup)
    Hum... n'abusez pas trop de la moquette, c'est bon mais quand même...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Salut,

    Citation Envoyé par Henrique92 Voir le message
    Voilà, je ne comprends pas, je tourne en rond sans savoir pourquoi je ne traite que les txt et non les TXT....
    A la lecture du code, effectivement, c'est un peu "bourrique" de comprendre: faites le parler pour vous assurez que ça fait bien ce que vous attendez:

    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
    def is_text(name): 
         e = os.path.splitext(name)[1]
         v = (e == '.txt' or e =='.TXT')
         print ("is_text(%s) = %s" % (name, v))
         return v
     
    for fichier in os.listdir(base) :
        if is_text(fichier): 
            Liste_fichiers.append(base+'\\'+fichier)
        if os.path.isdir(base+'\\'+ fichier):
            repertoire=base+'\\'+ fichier+'\\'
            os.chdir(repertoire)
            for fich in os.listdir(repertoire) :
                if is_text(fich):
                    Liste_fichiers.append(repertoire+fich)
    et restructurez votre code pour tester la chose par petit bout, çà aide.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Bonsoir et Merci !
    Effectivement, j'ai fait les tests et ça marche comme ça.
    Merci beaucoup pour l'explication en Anglais !!

    Par contre, j'ai un autre souci avec cette boucle car elle n'accède pas aux sous répertoires. Mais je ne vois pas pourquoi ?
    Merci.
    l'eau coule dans le sens de la rivière

  11. #11
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import os
     
    list_dir = ['icilechemindebase']
    Liste_fichiers = []
     
    while list_dir:  # Tant qu'il y a quelque chose dans la liste des fichiers
        base = list_dir.pop(0)  # On traite le premier repertoire
        for e in os.listdir(base):
            elem = os.path.join(base, e)  # De toute maniere on a besoin du chemin complet.
            if os.path.isdir(elem):
                list_dir.append(elem)
            elif os.path.isfile(elem) and os.path.splitext(elem)[1] in ('.txt', '.TXT'): 
                Liste_fichiers.append(elem)
    @+
    Merci d'utiliser le forum pour les questions techniques.

  12. #12
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Juste pour savoir. Les autres combinaisons à casses mixées sont interdites? "tXt", "Txt", "TXt", "txT", ...
    si non, pourquoi ne pas mettre l'extension en majuscule avant les tests?
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Bonsoir
    Un grand Merci PauseKawa
    Par contre, pour revenir à ce que je disais mais je n'ai pas été clair, désolé. je voudrais savoir en quoi mon code ne fonctionne pas.

    afranck64 Juste pour savoir. Les autres combinaisons à casses mixées sont interdites? "tXt", "Txt", "TXt", "txT", ...
    si non, pourquoi ne pas mettre l'extension en majuscule avant les tests?
    Effectivement, c'est une bonne question. Il n'y a aucune interdiction mais en même temps, les probabilités de trouver un TxT sont minimes dans mon cas.... Et ça surchargerait le programme...
    Par contre, c'est vrai. Je n'avais pas pensé à modifier toutes les formes txt avant l'ouverture. Je vais devoir potasser !

    Merci encore à vous !
    l'eau coule dans le sens de la rivière

  14. #14
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    Citation Envoyé par Henrique92 Voir le message
    Effectivement, c'est une bonne question. Il n'y a aucune interdiction mais en même temps, les probabilités de trouver un TxT sont minimes dans mon cas.... Et ça surchargerait le programme...
    Par contre, c'est vrai. Je n'avais pas pensé à modifier toutes les formes txt avant l'ouverture. Je vais devoir potasser !
    Pas vraiment...
    Citation Envoyé par PauseKawa Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if os.path.splitext(fichier)[1].lower() == '.txt'
    Pour ce qui est de votre erreur cherchez ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        if os.path.isdir(base+'\\'+ fichier):
            repertoire=base+'\\'+ fichier+'\\'
            os.chdir(repertoire)
            for fich in os.listdir(repertoire) :
                if os.path.splitext(fich)[1]=='.txt' or os.path.splitext(fichier)[1]=='.TXT' :
                    Liste_fichiers.append(repertoire+fich)
    Et regardez ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    list_dir = ['icilechemindebase']
    Liste_fichiers = []
     
    while list_dir:  # Tant qu'il y a quelque chose dans la liste des fichiers
        base = list_dir.pop(0)  # On traite le premier repertoire
        for e in os.listdir(base):
            elem = os.path.join(base, e)  # De toute maniere on a besoin du chemin complet.
            if os.path.isdir(elem):
                list_dir.append(elem)
            elif os.path.isfile(elem) and os.path.splitext(elem)[1] in ('.txt', '.TXT'): 
                Liste_fichiers.append(elem)
    @+
    Merci d'utiliser le forum pour les questions techniques.

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Oui super bien vu pour tout.
    Je vais encore potasser....
    l'eau coule dans le sens de la rivière

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/03/2012, 15h21
  2. ouvrir un fichier releve_*.txt
    Par twixi dans le forum VB.NET
    Réponses: 6
    Dernier message: 03/07/2008, 12h11
  3. Récupérer des données et les sauvegarder en *.txt
    Par littlepierre dans le forum Interfaces Graphiques
    Réponses: 31
    Dernier message: 17/03/2008, 12h56
  4. Ouvrir un fichier (type txt) et lire son contenu
    Par fafabzh6 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/09/2007, 14h17
  5. Ouvrir et modifier un .txt
    Par clemasson dans le forum Access
    Réponses: 1
    Dernier message: 09/12/2006, 10h17

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