Very newbie programming

TheSaint fc14301589 at icqmail.com
Sat Jun 10 11:44:23 EDT 2006


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



More information about the Python-list mailing list