Signaler

Les fichiers [Résolu]

Posez votre question Lucybell12 5Messages postés mercredi 24 mai 2017Date d'inscription 17 août 2017 Dernière intervention - Dernière réponse le 11 juin 2017 à 09:25 par _Ritchi_
Bonjour,
J'ai une petite question à propos des fichiers . Je sais comment utiliser les fichiers (open, write, close et tout...), mais on m'a laissé un exercice dans lequel je devais en premier créer une fonction permettant de renverser une chaîne dans une autre. Jusque là j'ai pas de problème . Mais après on me demande de reprendre la même chose mais le contenu du texte doit se retrouver dans un fichier , tout en appelant la fonction de la question précédente .
Pouvez-vous me donner quelques indices pour que je me retrouve svp ?
pour l'instant : j'ai importer la fonction de la question précédente. puis j'ai ouvert un fichier en mode 'w' , puis j'ai utilisé fichier.close() à la fin (histoire de ne pas l'oublier) .

Et là je ne sais plus du tout quoi faire .
Utile
+1
plus moins
Bonjour,

Sans voir ton code, difficile de t'aider…

Pour enregistrer dans un fichier vide, tu peux faire en gros :
with open('fichier.txt', 'w') as fichier:
    fichier.write('Bonjour Python !')


Tu n'as pas besoin de la méthode « close » parce que c'est le bloc de « with » qui fera le fermeture…
Cette réponse vous a-t-elle aidé ?  
Lucybell12 5Messages postés mercredi 24 mai 2017Date d'inscription 17 août 2017 Dernière intervention - 8 juin 2017 à 20:20
Voici la fonction :

def inverse(chaine):
ch = ""
for lettre in chaine :
ch = lettre + ch
return ch
chaine = input(" Donnez la chaine à inverser s.v.p")
print(inverse(chaine))

On me dit de reprendre la meme chose , mais cette fois le contenue du texte doit être dans un fichier , tout en réutilisant le code en appelant cette fonction . Quand j'ai jeté un coup d'œil sur la fiche de correction , j'ai vu (bonne utilisation de open, write et close, et utilisation du module ) , donc je suppose qu'on doit les utiliser . J'ai aucune idée de comment .
Répondre
Felice_ 266Messages postés mardi 25 avril 2017Date d'inscription 20 juillet 2017 Dernière intervention - 8 juin 2017 à 23:03
C'est cela que tu souhaites ? :
def inverse(chaine):
    ch = ''
    
    for lettre in chaine:
        ch = lettre + ch
    
    return ch

with open('fichier.txt', 'r') as fichier:
    print(inverse(fichier.read()))
Répondre
Lucybell12- 9 juin 2017 à 00:30
Non , ils ne doivent pas être dans le même module , La fonction inverse(chaine) est dans un autre script . Ce qu'on me demande c'est de faire un autre script , en réutilisant le code en appelant la fonction inverse(chaine) . Le contenu du texte doit se retrouver dans un fichier cette fois ci . Comme explication il a ajouté : « La première ligne du fichier représentera la chaine 1 et la deuxième ligne, représentera la chaine 2. Votre script doit accéder au fichier, vérifier si les conditions sont respectées puis inscrira le résultat dans le fichier »
Même moi je suis perdu.
Répondre
Felice_ 266Messages postés mardi 25 avril 2017Date d'inscription 20 juillet 2017 Dernière intervention - 9 juin 2017 à 09:47
Je vous ai déjà donner plus haut comment écrire dans le fichier.

Pour des variables chaine1 et chaine2 ça donne :

with open('fichier.txt', 'w') as fichier:
    fichier.write(chaine1)
    fichier.write(chaine2)


En revanche je ne comprends pas du coup qu'est-ce que votre chaine1 et votre chaine2… ?
Répondre
Lucybell12- 9 juin 2017 à 16:01
Merci je comprends maintenant .

chaine1 et chaine2 c'était le nom de variable que le prof avait choisit par défaut .
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour,

Il te suffit d'ouvrir et de lire le fichier texte dont on te demande d'inverser le contenu.
La commande d'ouverture de fichier: tu connais deja.
La lecture d'un fichier c'est : read()
Tu recuperes le contenu du fichier dans ta variable "chaine" et tu appelles ta function d'inversion
Plus de details: ICI

Ritchi
Lucybell12- 8 juin 2017 à 23:03
Merci ! C'est ce que je me disais mais quand j'ai vue les consignes donnés : « La première ligne du fichier représentera la chaine 1 et la deuxième ligne, représentera la chaine 2. Votre script doit accéder au fichier, vérifier si les conditions sont respectées puis inscrira le résultat dans le fichier »

Cela m'as mis dans le doute .
Répondre
Donnez votre avis
Utile
+0
plus moins
A noter qu'il n'y a pas besoin de fonction pour inverser une chaine en python, les slices le permettent simplement.

chaine = 'abcde'
print(chaine[::-1])


Comme ça tu pourras dire à ton prof ou instructeur qu'il est trop nul pour donner des trucs trop faciles à faire :D
_Ritchi_ 18037Messages postés samedi 17 mars 2007Date d'inscription ContributeurStatut 16 octobre 2017 Dernière intervention - 11 juin 2017 à 09:25
Bonjour gudu ,

Tu ne peux pas dire cela à propos du prof car son but est de faire réfléchir ses étudiants en leur soumettant des problèmes, d'où les exercices et autres devoirs à faire le soir après les cours.
Une solution à un problème ou la bonne réponse à une question ne devient simple ou évidente lorsqu'on l'a trouvée ("Eurêka !!!") et donc après y avoir réfléchi.
Et si tu n'as plus besoin de réfléchir pour trouver la solution à un problème d'écriture de code en Python, c'est que ton cerveau l'a intégrée/mémorisée suite à un apprentissage provoqué par un livre, un tutoriel internet, un professeur ou tout simplement la vie!

Amicalement,
Ritchi
PS: je ne suis pas enseignant, ni de près ni de loin.
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !