Python et la fonction len()

Bonjour, je voudrais savoir pourquoi la fonction len() ne renvoit pas le même résultat dans les deux cas suivants, en admettant que fichier.txt est composé de deux lignes:
ABCD
ABCD

1)
>>> a="ABCD"
>>> len(a)
4

2)
>>> f=open('fichier.txt', 'r')
>>> ligne=f.readline()
>>> len(ligne)
5

Dans les deux cas il y a bien 4 caractères dans "ABCD". Pourquoi la fonction len() en compte 5 lorsqu'elle cherche dans le fichier texte?
J'ai remarqué que si je laissais une seule ligne"ABCD" dans le fichier texte, la len(ligne) me compte bien 4 caractères. Pourquoi le fait de rajouter du contenu sur d'autres lignes modifie le résultat de len sur la première ligne?

Merci d'avance pour votre aide!

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Bonjour

    Sans doute parce que les lignes sont séparées par des caractères fin de ligne, que tu ne vois pas à l'écran mais qui font bel et bien partie de la chaîne lue par readline.

    extrait du manuel Python :
    f.readline() reads a single line from the file; a newline character (\n) is left at the end of the string, and is only omitted on the last line of the file if the file doesn’t end in a newline.
    https://docs.python.org/2/tutorial/inputoutput.html