Meine Alternative sieht so aus:
Code: Alles auswählen
def slparser(source="/etc/apt/sources.list"):
sl = file(source, 'r')
servers = []
for line in sl:
entry= line.splitlines()[0]
if line.startswith("deb"):
entry = entry.split(None, 3)
try:
entry[3] = entry[3].split()
except IndexError:
# Diese Zeile hat keine Auswahl zwischen main, contrib oder non-free
pass
servers.append(entry)
sl.close()
return servers
Das schöne daran ist, sie parst auch solche Dateien
Code: Alles auswählen
deb http://192.168.123.1/debian stable main
deb http://192.168.123.1/webmin ./
deb http://192.168.123.1/squid ./
deb http://ftp.de.debian.org/debian/ unstable main contrib non-free
# deb http://security.debian.org/ stable/updates main
Das Problem ist, wie ich jetzt gesehen habe, nachdem ich es abgeschickt habe, dass Dookie geschrieben hat, dass split(' ', 3) schlecht ist. Obwohl ich glaube, dass kaum jemand seine sources.list mit Tabs trennt.