Création d'une boucle qui sépare en fichiers à la rencontré du mot chapitre
Résolu/Fermé
Eole_7726
Messages postés
3
Date d'inscription
mardi 18 mai 2021
Statut
Membre
Dernière intervention
19 mai 2021
-
Modifié le 18 mai 2021 à 17:28
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 19 mai 2021 à 17:07
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 19 mai 2021 à 17:07
A voir également:
- Création d'une boucle qui sépare en fichiers à la rencontré du mot chapitre
- Comment réduire la taille d'un fichier - Guide
- Creation compte gmail - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Création compte google - Guide
3 réponses
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
Modifié le 18 mai 2021 à 17:45
Modifié le 18 mai 2021 à 17:45
Bonjour,
Il y a plusieurs choses qui ne vont pas :
Du coup je pense que ton code ressemble plutôt à quelque chose de ce genre :
Exemple :
Si
... on obtient :
Bonne chance
Il y a plusieurs choses qui ne vont pas :
- La syntaxe est incorrecte (par exemple il manque
:
à la fin de la ligneelif
. - La variable
i
(qui contient ta ligne courante) n'est pas exploitée. Je pense en plus que vu le nommage de la variable, tu t'es mélangée les pinceaux. - Je t'invite aussi à soigner l'indentation, car c'est important en python (ça permet de savoir à python où commencent et s'arrêtent les différents blocs).
Du coup je pense que ton code ressemble plutôt à quelque chose de ce genre :
#!/usr/bin/env python3 # -*- coding: utf-8 -*- filename_in = "mon_fichier.txt" with open(filename_in, "r") as f_in: index = 0 for line in f_in.readlines(): words = set(line.lower().strip().split()) create_file = True if "chapter" in words: index += 1 filename_out = f"chapitre_{index}.txt" elif "epilogue" in words: filename_out = f"epilogue.txt" else: create_file = False if create_file: with open(filename_out, "w") as f_out: print(line, "-->", filename_out)
Exemple :
Si
mon_fichier.txtcontient :
chapter 1
ligne1
ligne2
ligne3
chapter1
chapter 2
ligne4
ligne5
ligne6
ligne7
ligne8
CHAPTER 3
ligne9
ligne10
ligne11
ligne12
ligne13
epilogue
toto
tata
titi
... on obtient :
chapter 1
--> chapitre_1.txt
chapter 2
--> chapitre_2.txt
CHAPTER 3
--> chapitre_3.txt
epilogue
--> epilogue.txt
Bonne chance
Eole_7726
Messages postés
3
Date d'inscription
mardi 18 mai 2021
Statut
Membre
Dernière intervention
19 mai 2021
18 mai 2021 à 19:25
18 mai 2021 à 19:25
Merci beaucoup pour votre réponse !
Lorsque que je tape de nouveau mon script avec des améliorations (la partie que j'ai envoyé dans mon premier message n'est qu'un bout du chaos géant de mon code), le terminal ne m'affiche rien d'autre que (program exited with code: 0). Pourtant j'ai bien pensé à remplacer "mon_fichier.txt" par le nom de mon fichier, le fichier lui-même n'a pas subi de modifications et j'ai un peu de mal à comprendre le problème. Cela pourrait-il venir du fait que je travaille sur Geany ?
En vous remerciant pour votre aide et en vous souhaitant une bonne soirée.
Lorsque que je tape de nouveau mon script avec des améliorations (la partie que j'ai envoyé dans mon premier message n'est qu'un bout du chaos géant de mon code), le terminal ne m'affiche rien d'autre que (program exited with code: 0). Pourtant j'ai bien pensé à remplacer "mon_fichier.txt" par le nom de mon fichier, le fichier lui-même n'a pas subi de modifications et j'ai un peu de mal à comprendre le problème. Cela pourrait-il venir du fait que je travaille sur Geany ?
En vous remerciant pour votre aide et en vous souhaitant une bonne soirée.
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
19 mai 2021 à 16:27
19 mai 2021 à 16:27
Bonjour,
L'éditeur texte que tu utilises n'a aucun impact sur le comportement du programme : indépendamment de ses fonctionnalités, il écrit un fichier texte qui est lu par ton interpréteur python. Pour te répondre, il faudrait qu'on puisse reproduire ton problème (et donc d'avoir ton code, les paramètres d'exécutions, les fichiers traités, etc.) Idéalement il faudrait un code minimal qui met en évidence le problème et élimine tout ce qui ne concerne pas directement ton problème.
Par ailleurs, arrives-tu au moins à lancer avec succès (dans un fichier à part) le code que je t'ai partagé ?
Bonne chance
L'éditeur texte que tu utilises n'a aucun impact sur le comportement du programme : indépendamment de ses fonctionnalités, il écrit un fichier texte qui est lu par ton interpréteur python. Pour te répondre, il faudrait qu'on puisse reproduire ton problème (et donc d'avoir ton code, les paramètres d'exécutions, les fichiers traités, etc.) Idéalement il faudrait un code minimal qui met en évidence le problème et élimine tout ce qui ne concerne pas directement ton problème.
Par ailleurs, arrives-tu au moins à lancer avec succès (dans un fichier à part) le code que je t'ai partagé ?
Bonne chance
Eole_7726
Messages postés
3
Date d'inscription
mardi 18 mai 2021
Statut
Membre
Dernière intervention
19 mai 2021
19 mai 2021 à 16:53
19 mai 2021 à 16:53
Bonjour,
Merci beaucoup pour votre message, je me suis rendue compte après avoir l'envoie que c'était stupide de penser qu'il y avait un quelconque rapport avec mon éditeur
Au début je n'arrivais pas à lancer ne serait-ce que le code que vous m'aviez envoyé. Mais après avoir travaillé dessus toute la nuit, je me suis rendue compte que c'était un problème de chemin d'accès en allant chercher dans le AppData de mon ordinateur. Quand j'ai changé l'appellation du fichier, le code s'est lancé normalement et m'a donné le résultat escompté.
En vous remerciant encore pour votre aide.
je vous souhaite une excellente fin de journée.
Merci beaucoup pour votre message, je me suis rendue compte après avoir l'envoie que c'était stupide de penser qu'il y avait un quelconque rapport avec mon éditeur
Au début je n'arrivais pas à lancer ne serait-ce que le code que vous m'aviez envoyé. Mais après avoir travaillé dessus toute la nuit, je me suis rendue compte que c'était un problème de chemin d'accès en allant chercher dans le AppData de mon ordinateur. Quand j'ai changé l'appellation du fichier, le code s'est lancé normalement et m'a donné le résultat escompté.
En vous remerciant encore pour votre aide.
je vous souhaite une excellente fin de journée.
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
19 mai 2021 à 17:07
19 mai 2021 à 17:07
Merci pour ton retour, et bonne continuation :-)