urllib - readline, readlines oder read?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
genrich
User
Beiträge: 91
Registriert: Sonntag 27. Juni 2004, 17:46

Ich möchte eine Seite per urllib einlesen und jede zeile in einer Liste zusammen fassen:

Code: Alles auswählen

import urllib, string

url = "http://freedb.freedb.org/~cddb/cddb.cgi?cmd=cddb+lscat&hello=test+test+test.py+1.4&proto=5"


response = urllib.urlopen(url)
Gernes = response.readlines()[1:-1]
print Gernes


response = urllib.urlopen(url)
Genres = []
for i in response.readlines()[1:-1]:
    Genres.append(string.strip(i))
print Genres

Code: Alles auswählen


['data\r\n', 'folk\r\n', 'jazz\r\n', 'misc\r\n', 'rock\r\n', 'country\r\n', 'blues\r\n', 'newage\r\n', 'reggae\r\n', 'classical\r\n', 'soundtrack\r\n']
['data', 'folk', 'jazz', 'misc', 'rock', 'country', 'blues', 'newage', 'reggae', 'classical', 'soundtrack']

Die erste Variante ist schön klein... Hat aber den nachteil, das jeder Eintrag ein "\r\n" angehängt hat :( In der zweiten Variante ist das nicht der Fall, aber das ist wohl keine Optimale Lösung oder?

Gibt es einen besseren Weg?
joe

Hallo!
genrich hat geschrieben:

Code: Alles auswählen

response = urllib.urlopen(url)
Genres = []
for i in response.readlines()[1:-1]:
    Genres.append(string.strip(i))
print Genres

Code: Alles auswählen

response = urllib.urlopen(url)
Gernes = [genre.strip() for genre in response.readlines()[1:-1]]
print Gernes 
Ich tippe mal auf veraltetes python-buch (auch wegen des string.strip(i) statt i.strip()),oder? :wink:
joe
genrich
User
Beiträge: 91
Registriert: Sonntag 27. Juni 2004, 17:46

joe hat geschrieben:

Code: Alles auswählen

Gernes = [genre.strip() for genre in response.readlines()[1:-1]]
Danke!

Allerdings kann ich mich noch nicht so ganz an diese "kurzschreibweise" anfreunden... Aber vielleicht wird das ja noch was ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

genrich hat geschrieben:Allerdings kann ich mich noch nicht so ganz an diese "kurzschreibweise" anfreunden... Aber vielleicht wird das ja noch was ;)
Das sind List Comprehensions und ich muss zugeben, dass seitdem ich das verlinkte Dokument gelesen habe mag ich sie relativ gerne.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten