2017-06-19 7 views
0

Warum funktioniert folgender Code1 und Code2 nicht?Warum eine Sache funktioniert und eine andere Sache nicht?

Code1:

#Read from a file 

readMe = open('WriteToFile.txt', 'r').read() 
print(readMe) 

splitMe = readMe.split('\n') 

print(splitMe) 

Code 2:

#Read from a file 

readMe = open('WriteToFile.txt', 'r') 
print(readMe.read()) 

splitMe = readMe.read().split('\n') 

print(splitMe) 

ich die folgende Ausgabe für code2 bekommen: enter image description here

während ich möchte die Ausgabe wie code1 sein: enter image description here

Antwort

0

Sobald Sie read() aufrufen, um durch eine Datei zu gehen, bleibt die Datei "Zeiger" (irgendwie wie Cursor) am Ende der Datei und der Aufruf read() wieder nichts, da Sie bereits am Ende sind (und es gibt nichts zu lesen) . Sie müssen den Zeiger mit file.seek(0) an den Anfang der Datei verschieben.

Allerdings ist es besser, es nur einmal gelesen zu einem String und verwenden, die:

readMe = open('WriteToFile.txt', 'r') 
content = readMe.read() 

print(content) 

splitMe = content.split('\n') 

print(splitMe) 

Noch besser ist es, die with Anweisung zu verwenden, die die Datei automatisch für Sie schließt:

with open('WriteToFile.txt', 'r') as file: 
    content = file.read() 
print(content) 
lines = content.split('\n') 
print(lines) 

Wenn Ihr Endziel nur darin besteht, die Linien zu erhalten, können Sie readlines():

with open('WriteToFile.txt', 'r') as file: 
    lines = file.readlines() 
print(lines) 
verwenden
Verwandte Themen