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

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



Hallo,

> Ralph Brugger:
>> removeattachments.py
> Insgesamt hübsch geworden! Kurze Codekritik:

Wie geschrieben, meine Python Erfahrungen sind gleich Null ;)

>> # Sub: Treewalker
> Hast Du mal VBA programmiert? ;-)

Noe.

>>             # 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.

Ja, koennte man machen. Für mich war die subjetktive Lesbarkeit am
wichtigsten.

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

Ich muss mir mal ein Pythonbuch zulegen.
Muss man für Boolean als Datentypen irgendwas einbinden?

> 
>>             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):

Ja, das ist klar. Aber von der Performance her spielt es keine Rolle.
Denn die Ausgabe erscheint nur bei Mails bei denen Attachments gelöscht
werden sollen. Und das sind immer nur maximal eine Hand voll.
Bei ca. 30.000 Mails spielt das keine Rolle.
Das Erzeugen der Mailobjekte ist da dann außerdem deutlich relevanter in
der verbratenenen Zeit.
Aber any way, ich mag diese mehrzeiligen Strings nicht. Aber das ist
Gewohnheit.

> 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").

Ah ja, das muß ich mir mal anschauen.

Grüße,

Ralph



Reply to: