Hallo Zusammen,
ich bin neu hier und fange gerade erst mit Python an.
Ich habe eine Frage zu einem Mail-Versand.
Aktuell habe ich ein Skript geschrieben, mit dem ich eine Mail, mit einer Datei im Anhang, versenden kann. Im Anschluss wird die versendete Datei gelöscht.
Hintergrund ist, dass immer zwei Dateien erstellt werden. Eine soll versendet werden und die andere soll gespeichert bleiben.
Bei der Datei welche versendet wird sind im Dateinamen weniger Zeichen zu finden. Die andere Datei fängt immer mit dem Buchstaben "M" an.
Daher würde ich gerne eine Abfrage machen, ob die Datei mit "M" anfängt. Ist dies so wird weitergesucht bis die Datei ohne M gefunden wird. Diese wird dann versendet und gelöscht.
Wie ist dies Möglich?
bin ich hier auf dem richtigen weg?
from glob import *
for file in glob("/media/*.txt"):
dateiname = file
if dateiname == "M*"
die nächste Datei heraussuchen
dateiname != "M*"
communicationLib.SendMailToWith(...)
os.remove(dateiname)
Grüße und vorab schon mal Danke
Richard
Mailversand bestimmer Dateien
*-Importe sind schlecht. Importiere immer Namen explizit. Eingerückt wird immer mit 4 Leerzeichen pro Ebene, nicht 3.
`file` ist eigentlich ein `filename`. Warum nennst Du das dann gleich in der nächsten Zeile in `dateiname` um?
Wenn Du schon glob benutzt, dann kannst Du gleich nach Namen, die mit einem M beginnen, suchen.
Statt `glob` verwendet man heutzutage `pathlib.Path.glob`.
Module schreibt man wie Variablennamen komplett klein. Das `lib` bei `communicationlib` ist überflüssig, da ein Modul ja automatisch eine Library ist. Auch die Funktion darin ist falsch geschrieben: `send_mail_to_with`, wobei dieses `with` grammatikalisch unsinnig ist, und das `to` überflüssig.
`file` ist eigentlich ein `filename`. Warum nennst Du das dann gleich in der nächsten Zeile in `dateiname` um?
Wenn Du schon glob benutzt, dann kannst Du gleich nach Namen, die mit einem M beginnen, suchen.
Statt `glob` verwendet man heutzutage `pathlib.Path.glob`.
Module schreibt man wie Variablennamen komplett klein. Das `lib` bei `communicationlib` ist überflüssig, da ein Modul ja automatisch eine Library ist. Auch die Funktion darin ist falsch geschrieben: `send_mail_to_with`, wobei dieses `with` grammatikalisch unsinnig ist, und das `to` überflüssig.
Code: Alles auswählen
from pathlib import Path
MEDIA_PATH = Path('/media')
for filename in MEDIA_PATH.glob("M*.txt"):
communication.send_mail(..., filename, ...)
filename.unlink()