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 :

Demande explications lecture d'une ligne spécifique fichier txt


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 88
    Par défaut Demande explications lecture d'une ligne spécifique fichier txt
    Bonjour à tous,

    Merci à ceux qui prendrons le temps de me lire et à ceux qui pourront m'éclairer.
    Donc j'ai un petit exercice à faire et je ne comprends pas la méthode, j'aimerai que vous m'expliquiez sans forcement me donner le code.

    Exercice :

    Je dispose d'un fichier txt avec à l'intérieur plusieurs Articles.

    Nom : Screen Shot 2018-10-24 at 10.41.18 AM.png
Affichages : 939
Taille : 109,6 Ko

    Je dois créer un petit programme qui demande à l'utilisateur de rentrer le numéro d'un Article et donc lui retourner seulement l'Article et non pas le fichier txt complet.
    Ainsi que de mettre tous ça dans une boucle pour continuer à demander à l'utilisateur de rentrer un autre numéro ou alors quitter le programme.

    ---------------------

    Je vous avoue être complétement perdu. Pourriez vous me donner la logique et l'ordre de ce que je devrais faire.

    Un Grand merci à vous !!!

    ps : Le code doit être au plus simple car je débute, donc je connais très peu de fonction.
    ps 2 : Je suis sous Spyder Python 3.6

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    un des principes de base c'est de décortiquer comment tu t'y prendrais si tu le faisais à la main

    si je te réclame l'article 5, pourquoi tu me donne "Article 5 No one shall be subjected to torture or to cruel, inhuman or degrading treatment or punishment." ? pourquoi tu t'arrêtes à "punishment" au lieu de continuer sur la ligne suivante ? etc.

    le but étant de trouver une logique systématique là dedans, arriver à se rendre compte qu'à chaque fois on fait les mêmes opérations ("je cherche dans le texte", "je délimite un extrait de texte", "j'affiche un extrait de texte" etc.)

    et enfin il y a la connaissance du langage, Python fournit un certain nombre de fonctions qui vont permettre de lire/écrire des fichier, d'un seul coup ou au contraire ligne par ligne, rechercher dans du texte, calculer la longueur d'un texte, découper un texte etc. etc.

  3. #3
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut
    Bonjour,
    j'ai l'impression que dans ce texte, chaque ligne correspond à un article et que l'article 1 est à la ligne 2.
    Si c'est bien cela, pas de problème, l'article i correspond à fichier.readlines()[i] puisque le 0 correspond à la première ligne, et donc le 1 à la deuxième ligne donc à l'article 1, et ainsi de suite...
    Si ce n'est pas le cas, il faut parcourir les éléments de la listes fichier.readlines() jusqu'à y retrouver une chaine de caractère incluant 'article i', puis une autre chaine de caractère incluant 'article i+1' et il suffit de retourner tous les éléments intermédiaires en les joignant en une seule chaine par l'utilisation de la méthode str.join(liste), ou liste est une liste de chaines de caractères (donc la liste des éléments intermédiaires).
    Bon courage

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Normalement un simple text.split("Article ") devrait retourner la liste des articles dans l'ordre.
    Le premier item de la liste est à ignorer mais l'utilisateur n'est pas censé demander l'article 0.

  5. #5
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut
    Mais dans le cas ou chaque ligne correspond à un article, autant utiliser fichier.readlines()[i], plutôt que de créer un chaine texte=''.join(fichier.readlines()) et ensuite de faire text.split("article")[i] pour obtenir le ième article !

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Citation Envoyé par racine carrée Voir le message
    Mais dans le cas ou chaque ligne correspond à un article, autant utiliser fichier.readlines()[i], plutôt que de créer un chaine texte=''.join(fichier.readlines()) et ensuite de faire text.split("article")[i] pour obtenir le ième article !
    Pas besoin de join chacune des lignes, on peut lire le fichier dans son intégralité d'un seul coup : fichier.read()

Discussions similaires

  1. Remplacer une ligne dans fichier txt !
    Par cincap dans le forum Débuter
    Réponses: 13
    Dernier message: 24/09/2013, 12h52
  2. modifier une ligne dans fichier txt
    Par mvc_dev dans le forum C#
    Réponses: 6
    Dernier message: 14/05/2012, 13h23
  3. Modifier une ligne d’un fichier .txt (et seulement celle-ci)
    Par Jean-Pierre49 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/10/2011, 14h02
  4. Lecture d'une ligne précise fichier txt
    Par House MD dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/11/2007, 15h20
  5. [vb.net] ajouter une ligne à un fichier txt existant
    Par tbdarkspirit dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/05/2007, 11h41

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