Ich möchte eine Textdatei (/etc/fstab) so einlesen, dass ich am Ende ein Dictionary in dieser Form habe:
Code: Alles auswählen
{'/dev/scd0': ['/media/cdrom0', 'udf,iso9660', 'user,noauto', '0', '0'],
'/dev/sda5': ['/home', 'ext3', 'defaults', '0', '2'],
'/dev/sda6': ['none', 'swap', 'sw', '0', '0'],
'/dev/sda2': ['/', 'ext3', 'errors=remount-ro', '0', '1'],
'/dev/sda3': ['/testing', 'ext3', 'defaults', '0', '2']}
Am meisten stört mich, dass ich die Liste 10 mal 'durch laufen' muss um alle überflüssigen Leerzeichen zu entfernen.
Würde mich sehr freuen, wenn mir jemand einen Tipp geben kann wie ich das besser umsetzen kann.
Code: Alles auswählen
def read_fstab(self):
lines = []
with open('fstab') as f:
for line in f:
if line.startswith('#') or line.startswith('proc'):
pass
else:
line = re.sub(r'[\s]', ' ', line)
line = line.split(' ')
j = 0
while j < 10:
i = 0
for element in line:
if element == '':
del line[i]
i += 1
j += 1
if element:
lines.append(line)
fstab = {}
for line in lines:
fstab[line[0]] = line[1:]
return fstab
der atze
P.S.: Sorry fürs Topic.. mir fällt beim besten Willen nichts passenderes ein.