2009-06-06 18 views
1

Python file.read() Funktion wird nichts lesen. Es gibt immer '', egal was in der Datei ist. Was kann es sein? Ich weiß, dass es etwas Einfaches sein muss, aber ich kann es nicht herausfinden.Python file.read() auf Ubuntu

UPD: Ich versuchte mit 'r' und 'w +' Modi.

UPD: Der Code war:

>>> file = open('helloworld', 'w+') 
    >>> file.read() 
    '' 

Lösung: Mir kam gerade, dass, obwohl eine Datei zum Lesen in 'w +' Modus verfügbar ist, kürzt Python es nach dem Öffnen. 'r' (oder 'r +') Modus sollte stattdessen verwendet werden. Danke an alle.

+4

Bitte post ein Beispiel für das Code-Fragment, das nicht funktioniert. – ChristopheD

Antwort

2

Caveat: Ich kann nur raten, wie zum Verhalten, das nicht 'arbeiten' ist:

Wenn Sie in der Python-Interpreter arbeiten,
und Sie etwas tun, wie folgt aus:

>>> f = open('myfile.txt', 'r') 
>>> f.read() 

... Sie erhalten die gesamte Datei auf den Bildschirm gedruckt.

Aber wenn Sie dies wieder tun:

>>> f.read() 
'' 

... Sie erhalten einen leeren String.

Also, wenn Sie es nicht schon getan haben, versuchen Sie vielleicht Ihren Interpreter neu zu starten.

Von der documentation:

„den Inhalt einer Datei lesen zu können, rufen f.read (Größe), was eine gewisse Menge Daten liest und gibt sie als String Größe ist ein optionales numerisches Argument Wenn Größe ist.. Ausgesprochen oder negativ, der gesamte Inhalt der Datei wird gelesen und zurückgegeben, es ist Ihr Problem, wenn die Datei doppelt so groß wie der Speicher Ihres Computers ist.Andernfalls werden höchstens Größe Bytes gelesen und zurückgegeben.Wenn das Ende der Datei wurde erreicht, f.read() wird eine leere Zeichenfolge ("") zurückgeben.