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 :

lecture de fichier


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2018
    Messages : 4
    Par défaut lecture de fichier
    Bonsoir je cherche a realiser un code qui fais ceci:

    Dans un repertoire nommer "programme" se trouve multiple fichier .

    Quand on ouvre le 1er fichier nommer abcdef on en lis le texte " ouvre le fichier x1gh"

    Le prog dois donc ouvrir le fichier x1gh et le lire.

    Dedans il va lire " ouvre le fichier dsqiu"

    Le prog dois donc ouvrir le fichier dsqiu et le lire.

    Etc etc etc

    Le bouclage me pose un reel soucis ,je suis preneur de tout exemple.

  2. #2
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    Quelques indices, mais ne vous attendez pas à plus si vous ne mettez pas la main à la pâte.

    open(...) prend en arg un str ( le chemin absolu ou relatif du fichier).
    a = open(...) Et a sera un file object, a.read () retourne un str.
    tien tien je peut ouvrir un fichier avec un str et quand je lis un fichier il me renvoie un str.
    Il ne vous reste plus qu'à lire la Doc sur open().

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dedemarco Voir le message
    Le bouclage me pose un reel soucis ,je suis preneur de tout exemple.
    Bonjour

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    nom="abcdef"
    while variable "nom" pas vide:
    	ouvrir fichier dont le nom est dans la variable "nom"
    	lire ligne (éventuellement afficher ligne)
    	extraire nom de la ligne et stocker ce nom dans la variable "nom"
    	fermer fichier
    # while

    En supplétif à la réponse de flapili, je suggèrerais de vous intéresser à la fonction readline() plutôt que read()...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2018
    Messages : 4
    Par défaut
    je n'arrive pas a obtenir ce que je veux j'ai fais un truc du genre

    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
    #chemin des fichier
    path='C:/multifiles/'
    #premier fichier a ouvrir
    first="999"
     
    for fichier in os.listdir(path):
            with open(first, 'r') as a:
                next = (a.readline().split()[-2])
                print next
                with open(fichier, 'r') as f:
                    next = (f.readline().split()[-2])
                    print next

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 27
    Par défaut
    bonjour,

    en lisant votre énoncé, il semble que le but soit d'aller chercher un fichier, le lire et ouvrir un autre fichier dont la référence ce trouve dans le fichier précédent.

    je pense qu'il y a une chose à modifier dans l'énoncé:

    "python pourra lire dans un fichier, mais plutôt que d'y lire une commande je pense qu'il serait plus simple d'y lire la prochaine destination directement vu qu'il sait le faire." (bien sûr cela reste mon avis)

    j'étais parti sur une boucle mais en fait... je n'en ai pas utilisé. le if/else m'a été utile, os.listdir(), open() et readline() aussi.

    bon j'ai fait le test avec deux fichiers c'est peut-être la raison pour laquelle je n'ai pas eu besoin d'utiliser les boucles mais bon après il suffît d'adapter...

    cdt

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2018
    Messages : 4
    Par défaut
    je n'ai pas tres bien compris votre reponse a vrai dire , je suis obliger d'utiliser une boucle sachant que la procedure se repete sur une 500aine de fichier

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dedemarco Voir le message
    je n'arrive pas a obtenir ce que je veux j'ai fais un truc du genre
    Et est-ce que ce truc du genre correspond à l'idée que vous vous faites de la solution ???

    Je sais pas moi. Dans l'énoncé il est dit "je dois ouvrir un tel fichier" et vous partez sur une boucle qui traites tous les fichiers du répertoire. Est-ce que "traiter tous les fichiers du répertoire" équivaut à "ouvrir un fichier très particulier" ???

    Ou alors (je viens de relire l'énoncé) il faut appliquer l'algo "fic1 amène sur fic2 qui amène sur fic3 etc" à partir de chacun des fichiers du répertoire. Pourquoi pas. Mais dans ce cas, la réponse est la même: il faut créer l'algo qui traite un fichier ; et ensuite appliquer l'algo sur chacun des fichiers du répertoire.

    Dans ce cas, mon pseudo-code initial se transforme très légèrement
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def algo(fic):
    	nom=fic
    	while variable "nom" pas vide:
    		ouvrir fichier dont le nom est dans la variable "nom"
    		lire ligne (éventuellement afficher ligne)
    		extraire nom de la ligne et stocker ce nom dans la variable "nom"
    		fermer fichier
    	# while
    # algo()
     
    for fic in os.listdir(path):
    	algo(fic)

    D'ailleurs c'est généralement la meilleure méthode. Quand on traiter de façon complexe "n" éléments on définit alors le traitement pour "un" élément puis on applique "n" fois le traitement...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Salut,

    Citation Envoyé par dedemarco Voir le message
    je n'arrive pas a obtenir ce que je veux j'ai fais un truc du genre
    Commencez par simplifier le problème i.e. le découper pour vous concentrer sur les détails à adresser.
    Votre plus gros soucis est dans le parcours?
    Essayez de fabriquer une structure qui y ressemble. Imaginez un dictionnaire dont la valeur des clefs soit la suivante à aller chercher: pour le parcourir, il faudra un algo. similaire. et pour fabriquer un tel dictionnaire, vous pouvez partir de A, B, C, D, ... et d'un mélange D, A, B, C, ... Puis essayer de le parcourir pour voir les problèmes à résoudre (notamment noter par où on est déjà passé pour éviter de boucler à l'infini).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Ce problème a été donné sur un autre forum bien connu, avec les mêmes difficultés de compréhension...

    Il y a plusieurs fichiers; en première ligne de chacun, se trouve un chemin/nom de fichier qui déterminera ainsi, à l'aide d'une boucle l'ordre des fichiers à ouvrir dans le répertoire.

    Niveau conception on peut guère faire pire, mais c'était le problème présenté.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2018
    Messages : 4
    Par défaut
    Pour faire plus simple j'aimerais simplifier ca
    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
    import os
    path='C:/programme/'
    first="XXX"
     
    for fichier in os.listdir(path):
        ext = os.path.splitext(fichier)
        if ext != '.py':
            with open(first, 'r') as a:
                next = (a.readline().split()[-2])
                print next
                with open(next,'r') as b:
                    next1 = (b.readline().split()[-2])
                    print next1
                    with open(next1,'r') as c:
                        next2 = (c.readline().split()[-2])
                        print next2
                        with open(next2,'r') as d:
                            next3 = (d.readline().split()[-2])
                            print next3

Discussions similaires

  1. [Windows]lecture des fichier lnk (raccourcis)
    Par Tiaps dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 21/10/2009, 19h27
  2. [jsp]lecture de fichier
    Par antigone dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 04/09/2003, 11h05
  3. [AS400][Intranet][PC] Lecture de "fichiers" AS400
    Par lando dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 16/07/2003, 11h11
  4. Lecture de fichier
    Par Watcha dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 04/03/2003, 20h43
  5. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43

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