Hello! Is there a more pythonic way to implement the following program:
8<--------------8<--------------8<--------------8<-------------- #! /usr/bin/env python import os import sys a = os.listdir('/media') # no mount dirs were found, exit nicely if len(a) == 0: sys.exit(0) # Maybe collecting the arguments via command line # will make the program more flexible mnt = open("/etc/mtab") ptn = open("/proc/partitions") dskt = '/home/user/Desktop/' c =[] # Filling the c with the list of devices which are recorded to be mounted d = filter((lambda a: a[:2] =='/d'),mnt.readlines()) # non /dev-mounts are off d = map((lambda a: a.split()[:1]),d) # only the first info column is used [c.append(str(a)[2:-2]) for a in d] # checking against /proc/partitions to see if there're mountpoints without # corresponding partition which has been removed from the list # ALL mountpoints with available partition will be removed from the list x = ptn.readlines() for a in x[2:]: b = a.split()[-1] for d in c: if b == d.rsplit('/',1)[-1]: c.remove(d) if len(c) != 1: sys.exit(0) # if none or more than one match exit cmnd = str(c)[2:-2] err = os.system('umount ' + cmnd) a = os.listdir(dskt) #retrieve the info from the KDE desktop icons for i in a: if 'desktop' not in i: continue y = open(dskt + i) d = y.readlines() for x in d: if 'URL=/media' not in x: continue icon = i dvc = x[11:-1] break err += os.system('rm -f ' + dskt + icon) err += os.system('rmdir /media/' + dvc) sys.exit(err) # if something went wrong exit with high number 8<--------------8<--------------8<--------------8<-------------- I still have a long learnig curve, please give some advise in order to make the program a bit faster o nicer :) F -- http://mail.python.org/mailman/listinfo/python-list