Hier zwei Codes, die eigentlich das Gleiche tun sollten:
1. Mit with open(filename):
Code: Alles auswählen
import sys
def read_file(filename):
with open(filename) as f:
data = f.read()
return data
def main():
file_content = read_file(sys.argv[1])
for zeile in file_content:
print(zeile)
if __name__ == '__main__':
main()
Code: Alles auswählen
import sys
def read_file(filename):
data = open(filename)
return data
def main():
file_content = read_file(sys.argv[1])
for zeile in file_content:
print(zeile)
if __name__ == '__main__':
main()
Code: Alles auswählen
Hans;Huber;Stuttgart;198-8852364780
Fred;Maier;Passau;198-8776522227
Silke;Schulz;Fellbach;100-5544274889
Thomas;Braun;Kirchheim;198-7622900811
Josef;Kroll;Traunstein;198-1220009836
Kristina;Krauss;Hochberg;100-8192377652
Sara;Vogt;Vellberg;100-9225367888
Thorsten;Klenk;Offenburg;198-0119928736
Selina;Neumann;Waiblingen;100-8772200195
Beim 2. Code werden die Zeilen der Datei zeilenweise ausgegeben (so wie ich es eigentlich will).
Liegt es daran, dass with open() eine Objekt der Klasse 'str' zurückgibt und open(filename) eine Objekt der Klasse '_io.TextIOWrapper'?
Kann ich eine Textdatei mit with open() (was ich lieber verwenden würde) nur in einer Schleife zeilenweise auslesen?
Gruß,
Tom