Comment lire un fichier dans une liste en Python ?

Je veux demander à un utilisateur de générer un certain nombre de nombres aléatoires et de les enregistrer dans un fichier. Il nous a donné cette partie. La partie que nous devons faire est d'ouvrir ce fichier, de convertir les nombres en une liste, puis de trouver la moyenne, l'écart type, etc. sans utiliser les outils intégrés faciles de Python.

J'ai essayé d'utiliser open mais cela me donne une syntaxe invalide (le nom de fichier que j'ai choisi était "numbers&quot ; et il a été enregistré dans "My Documents" automatiquement, donc j'ai essayé open(numbers, 'r&#39 ;) et open(C:\name\MyDocuments\numbers, 'r&#39 ;) et aucun n'a fonctionné).

f = open("file.txt")
lines = f.readlines()

Regardez [ici][1]. readlines() renvoie une liste contenant une ligne par élément. Notez que ces lignes contiennent le \n (caractère de nouvelle ligne) à la fin de la ligne. Vous pouvez enlever ce caractère de fin de ligne en utilisant la méthode strip(). Par exemple, appelez lines[index].strip() afin d'obtenir la chaîne sans le caractère de nouvelle ligne.

Comme l'a noté Joaquin, n'oubliez pas de f.close() le fichier.

Convertir des strint en entiers est facile : int("12&quot ;).

[1] : http://docs.python.org/tutorial/inputoutput.html

Commentaires (2)

Vous devez passer une chaîne de noms de fichiers à open. Il y a une complication supplémentaire lorsque la chaîne de caractères contient un \_, parce que c'est un caractère d'échappement spécial pour Python. Vous pouvez résoudre ce problème en doublant chaque caractère par \\\ ou en mettant un r devant la chaîne comme suit : r'C:\name\MyDocuments\numbers'.

**Les modifications apportées à la question la rendent complètement différente de l'originale, et comme aucune d'entre elles ne vient de l'auteur original, je ne suis pas sûr qu'elles soient justifiées. Cependant, elle met en évidence une chose évidente qui aurait pu être négligée, à savoir comment ajouter "Mes documents" à un nom de fichier.

Dans une version anglaise de Windows XP, "Mes documents" est en fait "C:³³ Documents and Settings³ Documents". Cela signifie que l'appel open doit ressembler à ceci :

open(r"C:\Documents and Settings\name\My Documents\numbers", 'r')

Je présume que vous utilisez XP parce que vous l'appelez "Mes documents" - cela a changé dans Vista et Windows 7. Je ne sais pas s&#8217il existe un moyen simple de rechercher cela automatiquement dans Python.

Commentaires (0)
hdl = open("C:/name/MyDocuments/numbers", 'r')
milist = hdl.readlines()
hdl.close()
Commentaires (2)