Python rocks!

11 marca, 2009

Codziennie poznaję kawałek tego języka i codziennie lubię go coraz bardziej!

W związku z ostatnim pomysłem na rozszerzone logowanie użytkownika ( via pgina ) potrzebowaliśmy pobrać listę montowanych dysków z pliku startowego znajdującego się na Sambie w katalogu domowym każdego usera i zapisać choćby w formacie csv.

Teraz do sedna - 10 minut pracy (łącznie z grzebaniem w dokumentacji, wszak ekspertem jeszcze nie jestem :) ) i powstało parę linijek wykonujących dokładnie to co chciałem :)

 
import os
 
# sciezka z home'ami
PATH = "/home"
# szukany plik
BATFILE = "startup.bat"
# plik wysjciowy
DATAFILE = "dane.csv"
 
result = open(DATAFILE,'w')
 
for d in os.listdir(PATH):
    path = os.path.join(PATH, d,BATFILE)
    if os.path.exists(path):
        file = open(path,"r")
        for l in file.readlines():
            if l.startswith('net use'):
                (k, v) = l.split()[2:4]
                result.write("%s,%s,%s\n" % (d, k, v))
        file.close()
result.close()
 

... i w pliku wyjściowym lądują wpisy w postaci

username,literka_dysku,sciezka

Może nie jest to zoptymalizowane rozwiązanie (ciągle się uczę więc mogłem pominąć coś ważnego), ale najważniejsze, że spełnia swoje zadanie.

Komentarze do wpisu "Python rocks!":

1. Dodek napisał(a):
11 marca 2009, 18:24:00

ładny styl wymaga try: open(); ...; finally: close() :)

2. chester napisał(a):
11 marca 2009, 21:05:55

Ha, racja! jakoś nie wpadłem na to, dlatego sprawdzałem tylko przez exists() :)

3. TBi napisał(a):
11 marca 2009, 22:23:07

Tak co do pierwszej części wpisu, to fakt Python jest seksi ;] na prawdę fajnie sie go uczy, zwłaszcza ucząc sie jednocześnie C++

Dodaj komentarz: