URL zeilenweise auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tadeus
User
Beiträge: 10
Registriert: Donnerstag 8. Oktober 2009, 14:38

Hallo,

ein Skript soll eine URL aufrufen. In dieser Datei sind folgende Beispieldaten enthalten

Code: Alles auswählen

2013-09-27_10:27 , 2013-09-27_16:26 , zweck1
2013-09-24_17:25 , 2013-09-24_18:28 , zweck2
2013-09-25_18:26 , 2013-09-25_17:27 , zweck3
2013-09-29_10:27 , 2013-09-29_16:26 , zweck4
Ich möchte die Daten aus dieser Url auslesen und dann gesplittet in eine mehrdimensionale Liste verfrachten.

Die Url auslesen mache ich so:

Code: Alles auswählen

url1 = urllib.urlopen(link)
inhalt = url1.read()
Aber wie lese ich nun den Inhalt zeilenweise aus um es dann zu splitten und in eine Liste zu stecken?
Welche nützlichen Funktionen gibt es dafür?

Danke
BlackJack

@tadeus: Da brauchst Du keine Funktion für. Dateiobjekte sind normalerweise schon „iterierbar” über die Zeilen, dass heisst Du kannst da einfach in einer Schleife drüber gehen.

Wenn es sich um CSV-Daten handelt, lohnt sich wohl auch ein Blick in das `csv`-Modul aus der Standardbibliothek.

Ansonsten könnte die „list comprehension” ein praktisches syntaktisches Konstrukt sein was Du Dir mal anschauen kannst.

Der Name `url1` ist übrigens schlecht gewählt. Zum einen sollte man nicht sinnlose Nummern an Namen hängen und zum anderen ist das was Du `link` genannt hast eine URL. Das was `urlopen()` zurückgibt ist ein Dateiobjekt.
tadeus
User
Beiträge: 10
Registriert: Donnerstag 8. Oktober 2009, 14:38

Danke ich werds ändern.

Bleiben wir aber bei meinem Beispiel: Wenn ich aber mit einer Schleife über "url1" gehe, bekomme ich nichts, wenn ich aber über "inhalt" gehe, spukt er pro Zeile einen Buchstaben aus.

Irgendwas mache ich da falsch.
BlackJack

@tadeus: Du hast jetzt aber vor der Schleife nicht den `read()`-Aufruf drin gelassen, oder? Dann bekommst Du natürlich nichts, denn der `read()`-Aufruf hat ja schon alles gelesen was da war.
Antworten