Wie kann man in Python eine Datei in eine Liste einlesen?

Ich möchte einen Benutzer auffordern, eine Anzahl von Zufallszahlen zu generieren und in einer Datei zu speichern. Diesen Teil hat er uns gegeben. Der Teil, den wir tun müssen, ist, diese Datei zu öffnen, die Zahlen in eine Liste zu konvertieren und dann den Mittelwert, die Standardabweichung usw. zu ermitteln, ohne die einfachen eingebauten Python-Tools zu verwenden.

Ich habe versucht, open zu benutzen, aber es gibt mir eine ungültige Syntax (der Dateiname, den ich gewählt habe, war "numbers" und er wurde automatisch in "My Documents" gespeichert, also habe ich open(numbers, 'r') und open(C:\name\MyDocuments\numbers, 'r') probiert, und keines davon hat funktioniert).

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

Schauen Sie hier nach. readlines()" gibt eine Liste mit einer Zeile pro Element zurück. Beachten Sie, dass diese Zeilen das "n" (Newline-Zeichen) am Ende der Zeile enthalten. Sie können dieses Newline-Zeichen mit der Methode strip() entfernen. Rufen Sie z.B. lines[index].strip() auf, um die Zeichenkette ohne das Zeilenumbruchzeichen zu erhalten.

Wie joaquin bemerkte, vergessen Sie nicht, die Datei mit f.close() zu schließen.

Die Umwandlung von strint in ganze Zahlen ist einfach: int("12").

Kommentare (2)

Sie müssen eine Zeichenkette mit dem Dateinamen an open übergeben. Es gibt eine zusätzliche Komplikation, wenn die Zeichenkette \ enthält, denn das ist ein spezielles String-Escape-Zeichen für Python. Sie können dies beheben, indem Sie jedes Zeichen als \ verdoppeln oder ein r wie folgt vor die Zeichenkette setzen: r'C:\name\MyDocuments\numbers'`.

Edit: Die Änderungen an der Frage unterscheiden sich völlig vom Original, und da keine davon vom ursprünglichen Poster stammt, bin ich mir nicht sicher, ob sie gerechtfertigt sind. Sie weisen jedoch auf eine offensichtliche Sache hin, die vielleicht übersehen wurde, und zwar wie man "Eigene Dateien" zu einem Dateinamen hinzufügt.

In der englischen Version von Windows XP heißt "Eigene Dateien" eigentlich "C:\Dokumente und Einstellungen"\Meine Dokumente". Das bedeutet, dass der Aufruf von open wie folgt aussehen sollte:

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

Ich nehme an, dass Sie XP verwenden, weil Sie es "Meine Dokumente" nennen - in Vista und Windows 7 hat sich das geändert. Ich weiß nicht, ob es eine einfache Möglichkeit gibt, dies automatisch in Python nachzuschlagen.

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