Les fichiers

Résolu/Fermé
Lucybell12 Messages postés 5 Date d'inscription mercredi 24 mai 2017 Statut Membre Dernière intervention 17 août 2017 - 8 juin 2017 à 17:41
_Ritchi_ Messages postés 21293 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 26 novembre 2024 - 11 juin 2017 à 09:25
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 .

3 réponses

Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 8 juin 2017 à 19:15
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…
0
Lucybell12 Messages postés 5 Date d'inscription mercredi 24 mai 2017 Statut Membre Dernière intervention 17 août 2017
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 .
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11 > Lucybell12 Messages postés 5 Date d'inscription mercredi 24 mai 2017 Statut Membre Dernière intervention 17 août 2017
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()))
0
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.
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11 > Lucybell12
Modifié le 9 juin 2017 à 09:48
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… ?
0
Lucybell12 > Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017
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 .
0
_Ritchi_ Messages postés 21293 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 26 novembre 2024 6 080
Modifié le 8 juin 2017 à 22:32
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
0
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 .
0
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
0
_Ritchi_ Messages postés 21293 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 26 novembre 2024 6 080
Modifié le 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.
0