[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Attachments aus Mails in Maildir Verzeichnis per Script löschen



Ralph Brugger:
> 
> removeattachments.py

Insgesamt hübsch geworden! Kurze Codekritik:

> # Sub: Treewalker

Hast Du mal VBA programmiert? ;-)

>             # Gibt es zu loeschende Parts ?
>             if part.get_content_type() != "text/plain" and
> part.get_content_type() != "multipart/mixed" and part.get_content_type()
> != "multipart/signed":

Solche langen Bedingungen kann man auch gern mal als eigene Funktion
definieren. Da Du das zwei Mal brauchst, ist das hier IMHO auch
gerechtfertigt.

>               doremove = 1

Python kennt seit einiger Zeit echte boolsche Typen (True, False), die
sollte man benutzen, wenn man wirklich nur die zwei Werte braucht.

>             echoheader = ""
>             echoheader += "Datei: "
>             echoheader += filex
>             echoheader += "\n"
>             echoheader += "  Groesse: %d kB" % sizekb
>             echoheader += " > %d kB\n" % minsize
>             echoheader += "  Alter: %d" % daysold
>             echoheader += " > %d Tage\n" % minalter

So eine Stringverkettung ist oft böse, weil (wie in Java) jedes Mal ein
neues String-Objekt erzeugt wird. Mit Multilinestrings und
Stringformatierung sieht das IMHO auch etwas schöner aus (und geht
schneller, wenn man das sehr, sehr oft macht):

echoheader = \
"""Datei: %(filex)
  Groesse: %(sizekb) > %(minsize)
  Alter: %(daysold) > %(minalter)
""" % locals()

locals() gibt ein Dictionary mit den lokal definierten Variablen zurück.

> if len(sys.argv) != 5:

Wenn man eine etwas komplexere Aufrufsyntax hat, lohnt schnell ein Blick
auf das Modul optparse:
<http://docs.python.org/lib/module-optparse.html>

Ist etwas aufwändig zu benutzen, aber dann funktioniert auch alles sehr
schön und man bekommt ein paar Sachen quasi umsonst (vor Allem eine
brauchbar formatierte "usage").

J.
-- 
I like my Toyota RAV4 because of the commanding view of the traffic
jams.
[Agree]   [Disagree]
                 <http://www.slowlydownward.com/NODATA/data_enter2.html>

Attachment: signature.asc
Description: Digital signature


Reply to: