Lire un fichier txt [Résolu]

Signaler
-
Messages postés
29874
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
25 octobre 2020
-
Bonjour,
Je fais mes tous premiers pas en python.
J'ai le code suivant :
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> fichier = open("LICENSE.txt", "r")
>>> for ligne in fichier:
print(ligne)
fichier.close()


Lorsque je veux l'exécuter en faisant F5 j'ai le message d'erreur "invalid syntax" et, ce qui me parait très curieux, le 7 de "Python 3.7.3" (en 1° ligne du script) est surligné en rouge.
Merci de votre aide

2 réponses

Messages postés
29874
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
25 octobre 2020
6 866
Bonjour,

Tu devrais mettre tes lignes de code dans un source .py et exécuter ce source.

Car ton soucis c'est probablement juste l'utilisation de la console python en mode interactif/commande directe

En mode interactif, après avoir validé la ligne print il faut en validant une ligne blanche avec enter sortir de la boucle for. On a alors :
>>> fichier = open("f01.txt", "r")
>>> for ligne in fichier:
 print(ligne)
 
11111
AZZZ

>>> fichier.close()


Messages postés
548
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
13 juillet 2020
111
Salut !

C'est normal, tu dois indenter ton code, après ton for tu dois rajouter une tabulation, ça devrait ressembler à ça dans ta console
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> fichier = open("LICENSE.txt", "r")
>>> for ligne in fichier:
... print(ligne)

[Ligne blanche pour qu'il te liste les lignes]

fichier.close()


En utilisant la touche tabulation (qui correspond à 4 espaces)

Si tu veux une meilleure présentation tu peux télécharger un éditeur de code, créer un fichier .py et ensuite le lancer avec python.


Par contre ton code ne marchera il ne me semble pas plus... Tu dois changer ta ligne for.

for ligne in fichier.readlines():