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 :

exercice python sur les fichiers [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Par défaut exercice python sur les fichiers
    Bonjour j'ai besoin d'aide pour cette exercice python svp

    Ecrire une fonction nouveaux_heros dont le but consiste à remplacer les héros d'une histoire. Il y aura deux paramètres:

    le premier sera une chaîne de caractères précisant le nom du fichier contenant l'histoire initiale ;
    le deuxième sera une chaîne de caractères précisant le nom du fichier dans lequel sera sauvegardée l'histoire modifiée comme précisé ci-dessous
    Dans l'histoire initiale, présente dans le fichier dont le nom est donné en premier argument, trois protagonistes interviennent : Pierre, Paul et Jacqueline.
    La fonction devra remplacer ces trois héros par, respectivement, Paul, Tom et Mathilde.
    Le texte ainsi modifié sera alors stocké dans le fichier dont le nom est donné en deuxième argument.

    Nom : Capture.PNG
Affichages : 1466
Taille : 46,5 Ko

    voici ce que j'ai fait pour l'instant si vous pouvez m'aidez svp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    # -*- coding: utf-8 -*-
    def nouveaux_heros(a,b):
        fichier=open("histoire_1.txt")
        text= fichier.read()

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Avant de travailler sur les fichiers je vous suggère d'essayer de faire l’exercice avec des chaines de caractères. Une fois que c'est fait et que cela fonctionne vous passez aux fichiers...


    PS : Dans votre code il y a un petit soucis : les paramètres a et b doivent être utilisés, en particulier on voit que le paramètre a est censé contenir le nom du fichier à lire donc l’instruction fichier=open("histoire_1.txt") devrait plutôt être fichier=open(a)...

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 814
    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 814
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Comme dit Beginner, découpe tes tâches en fonctions. La première sera de convertir le contenu d'une string.
    Quand cette fonction sera parfaitement ok, ce sera alors facile d'ouvrir le fichier et passer son contenu à ladite fonction.

    PS: tu fais gaffe aussi que Paul (héros de la premère histoire) disparait mais revient ensuite comme héros de la seconde. Il te faudra donc gérer l'ordre des replacements. Et pour vraiment bien faire, ta fonction devrait commencer par mémoriser les positions des noms à remplacer puis ensuite seulement faire le remplacement. Ca lui permettrait de gérer des cas comme "remplacer Pierre et Paul par Paul et Pierre"...
    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
    Membre actif
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Par défaut
    j'ai fait cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    remplacement = {'Paul': 'Tom','Pierre': 'Paul','Jacqueline': 'Mathilde'}
     
    for i, nom in enumerate(remplacement.keys()):
        nouveautexte = nouveautexte.replace(nom, f"\{{i}\}")
     
    nouveautexte = texte.format(remplacement.values())

  5. #5
    Expert confirmé

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

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

    enumerate ne sert pas à cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    >>> remplacement = {'Paul': 'Tom','Pierre': 'Paul','Jacqueline': 'Mathilde'}
    >>> for i, n in enumerate(remplacement):
    ...     print(i, n)
    ... 
    0 Paul
    1 Pierre
    2 Jacqueline
    Il faut utiliser dict.items()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    >>> for i, n in remplacement.items():
    ...     print(i, n)
    ... 
    Paul Tom
    Pierre Paul
    Jacqueline Mathilde

  6. #6
    Membre actif
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Par défaut
    du coup ce serait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    # -*- coding: utf-8 -*-
    def nouveau_heros(a,b):
        with open('histoire_1.txt','r') as mon_fichier:
            contenu = mon_fichier.read()
            transformation = {'Paul': 'Tom','Pierre': 'Paul','Jacqueline': 'Mathilde'}
            for i, nom in transformation.keys()):
                texte = texte.replace(nom, f"\{{i}\}")
    texte = texte.format(*transformation.values())

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

Discussions similaires

  1. Besoin d'aide avec un exercice de python sur les listes.
    Par Azixp92 dans le forum Général Python
    Réponses: 13
    Dernier message: 14/01/2020, 08h39
  2. Besoin d'aide sur python, exercices sur les fichiers
    Par Mini-minimoys dans le forum Général Python
    Réponses: 6
    Dernier message: 21/11/2015, 18h37
  3. [Free Pascal] Exercice sur les fichiers typés et procédures
    Par osabri dans le forum Free Pascal
    Réponses: 2
    Dernier message: 17/01/2010, 11h50
  4. [Turbo Pascal] Exercice sur les fichiers
    Par jawher dans le forum Turbo Pascal
    Réponses: 0
    Dernier message: 07/11/2009, 11h47
  5. Réponses: 6
    Dernier message: 28/04/2004, 10h41

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