Posts by JackerNils
-
-
Hallo!
Ich hoffe ihr könnt mir nochmal bezüglich des Abrufen von Emails helfen. Undzwar möchte ich mit diesem Code:
Codeserver = poplib.POP3_SSL(adresse) server.user(benutzer) server.pass_(passwort) message_count, mailbox_size = server.stat() header, message, octets = server.retr(message_count)
meine EMails abrufen. Daten, wie Datum, Absender, und Empfänger bekomme ich über:
Nun möchte ich noch den eigentlichen Inhalt der Email abrufen. Doch wie bekomme ich diesen?
-
Klingt logisch ich probiere es Mal!
Scheint zu funktionieren! Vielen Dank an alle Beiträge!
-
Habe ich übernommen. Komischer Weise wird das Bild jetzt nur ein bis drei Mal heruntergeladen und gesetzt. Danach wird nicht das neue Bild heruntergeladen. Sehen kann man das daran, dass obwohl das Programm läuft der letzte Zugriff und die letzte Änderung (erkennbar an den Datei Eigenschaften) sich nicht mehr ändert. Vielleicht gibt es noch ein Fehler beim herunterladen?
-
Code
Display Moredef lade_DWD_Bild(): #https://www.dwd.de/DWD/warnungen/warnstatus/SchilderD.jpg #https://www.dwd.de/DWD/warnungen/warnapp_gemeinden/json/warnungen_gemeinde_map_nib.png bild_Link = urllib2.urlopen("https://www.dwd.de/DWD/warnungen/warnstatus/SchilderHA.jpg") bild_Datei = open("/home/pi/RPi/Start/DWD.jpg","w") bild_Datei.write(bild_Link.read()) bild_Datei.close() roh_Datei = Image.open("/home/pi/RPi/Start/DWD.jpg") breite = roh_Datei.width hoehe = roh_Datei.height roh_Datei = roh_Datei.resize((int(breite/1.3), int(hoehe/1.3)), Image.ANTIALIAS) bild = ImageTk.PhotoImage(roh_Datei) return bild, breite, hoehe def aktualisiere_Warnkarte(): print "{0}: Aktualisiere Warnkarte.".format(time.strftime("%H:%M:%S")) bild, breite, hoehe = lade_DWD_Bild() bild_anzeige.configure(image=bild) bild_anzeige.place(x=-1,y=-1) if __name__ == "__main__": bild, breite, hoehe = lade_DWD_Bild() bild_anzeige = Label(root, highlightthickness=0, width=int(breite/3), height=int(hoehe/3), image=bild) bild_anzeige.place(x=-1,y=-1) aktualisiere_Warnkarte() root.mainloop()
Nun wird jedoch komischer Weise nur der Rahmen angezeigt und gar kein Bild mehr.
#Edit: Das Bild wird nun wieder angezeigt nachdem folgende Zeile hinzugefügt wurde:
Ich prüfe nun noch ob das Bild auch richtig aktualisiert wird!
-
Das Bild wird zwar richtig heruntergeladen und auch richtig gespeichert. Jedoch wird das Bild nicht auf dem Label neu angezeigt sondern es bleibt der alte Stand.
Eigentlich dürfte es aber keine Probleme geben, da Texte, wie Uhrzeit und anderes auch aktualisiert werden nach dem gleichen Prinzip.
Hinzuzufügen ist, dass das Programm über LXDE beim Start gebootet wird.
-
Anscheinend funktioniert das abrufen und neu Laden des Bildes immer noch nicht richtig. Habt ihr noch andere Lösungswege?
Gruß Nils
-
Danke.
Hat mit einem Label geklappt!
Gruß
Nils
-
Hallo,
Ich besitze ein Canvas in meinem Tkinter welches hierdurch erstellt wird:
Code
Display MoreimgLink = urllib2.urlopen("https://www.dwd.de/DWD/warnungen/warnstatus/SchilderD.jpg") filename = "DWD.jpg" savefp = open(filename,"w") savefp.write( imgLink.read() ) savefp.close() vorvorImg = Image.open("/home/pi/RPi/Start/DWD.jpg") wid = vorvorImg.width hei = vorvorImg.height vorImg = vorvorImg.resize((int(wid/1.3), int(hei/1.3)), Image.ANTIALIAS) img = ImageTk.PhotoImage(vorImg) imgOnPanel = img panel = Canvas(root, highlightthickness=0, width=(int(wid/1.3)), height=(int(hei/1.3))) panel.place(x=-1,y=-1) panel.create_image(int(wid/3) + 71, int(hei/3) + 25,image=img)
Und über die updateWarnkarte Funktion wird dieses Bild dann eigentlich aktualisiert:
Code
Display Moredef updateWarnkarte(): print "{0}: Aktualisiere Warnkarte.".format(time.strftime("%H:%M:%S")) imgLink = urllib2.urlopen("https://www.dwd.de/DWD/warnungen/warnstatus/SchilderD.jpg") filename = "DWD.jpg" savefp = open(filename,"w") savefp.write( imgLink.read() ) savefp.close() vorvorImg = Image.open("/home/pi/RPi/Start/DWD.jpg") wid = vorvorImg.width hei = vorvorImg.height vorImg = vorvorImg.resize((int(wid/1.3), int(hei/1.3)), Image.ANTIALIAS) img = ImageTk.PhotoImage(vorImg) global panel global imgOnPanel panel.itemconfigure(imgOnPanel, image=img) panel.place(x=0,y=0) imgOnPanel = img root.after(30000, updateWarnkarte)
Auch wenn das neue Bild richtig heruntergeladen wird und auch richtig gespeichert wird, wird es nicht richtig angezeigt.. vielleicht könnt ihr mir da helfen?
Gruß Nils
-
Hey,
Ich suche eine Möglichkeit die Unwetter Karte des DWD in einem Tkinter-Window darzustellen. Vielleicht hat jemand Lösungsvorschläge?
https://www.dwd.de/DE/wetter/warnungen/warnWetter_node.html
Gruß Nils
-
Moin
Ich kann nirgends erkennen, dass du die Verbindung zum Mailserver wieder schließt.
https://docs.python.org/2/libr…lib.html#poplib.POP3.quit
Du baust aber alle 120 Millisekunden eine Verbindung auf. Da dreht jeder Mailserver durch...
Stimmt das server.quit habe ich vergessen! Und ich bin eigentlich von 120 Sekunden ausgegangen. Vielen Dank
-
Hey,
Ich habe mir ein Tkinter-Programm zum Abrufen von E-Mails geschrieben. Funktioniert auch alles super, nur werden neue E-Mails nur bei einem Neustart des Programms abgerufen und angezeigt.
Anbei findet ihr die updateEmail Funktion aus meinem Programm.
Code
Display Moredef updateEmail(): server = poplib.POP3("zensiert") server.user("zensiert") server.pass_("zensiert") message_count, mailbox_size = server.stat() header, message, octets = server.retr(message_count) new = False for i in range(len(message)): msg = message[i] #print msg if msg.startswith('To:'): if(empfanger.cget("text") != msg[4:]): tempEmp = msg[4:] new = True if msg.startswith('From:'): if(absender.cget("text") != msg[6:]): new = True tempAbs = msg[6:] if msg.startswith('Subject'): if(betreff.cget("text") != msg[9:]): new = True tempBet = msg[9:] if msg.startswith('Date:'): if(edatum.cget("text") != msg[6:]): new = True tempEDat = msg[6:] if msg.startswith('X-mediaBEAM-SpamScore:'): last = i tempNac = "" for i in range(last + 1, last + 13): if(len(message[i]) <= 77): tempNac += message[i] + "\n" if(nachricht.cget("text") != tempNac): new = True if(new): empfanger.configure(text=tempEmp) #<-- Dies sind die Labels zum anzeigen des Textes absender.configure(text=tempAbs) betreff.configure(text=tempBet) edatum.configure(text=tempEDat) nachricht.configure(text=tempNac) tag = time.strftime("%A") tag = translateWochentag(tag) tag = tag[:3] zeit = time.strftime("%d.%m.20%y %H:%M:%S") txt = "{0}. {1}".format(tag, zeit) empfangszeit.configure(text=txt) root.after(120, updateEmail)
Ich hoffe ihr könnt mir helfen.
Gruß Nils
-
Hallo,
eure Kritik kann ich durchaus nachvollziehen.
Hallo,
ok - wobei ein passende Direktive in der ServiceUnit "stilvoller" ist :-)
Zum Skript:
Eingerückt wird immer mit vier Leerzeichen, nicht mit 8.
Zeile 2 ist sinnlos, kannst du löschen.
Verwendest du `response` später irgendwo? Sonst kannst du in Zeile 5 den Rückgabewert auch an die "Wegwerfvariable" _ (Unterstrich) binden.
Strings formatiert man mit der `format` Methode, nicht mit + Zeichen.
Gruß, noisefloor
Da kann ich nur entgegenwenden, dass ich jahrelang Java gelernt habe und ich mir nun Python mehr oder weniger zusammen würfel.
-
Habe nun in meinem Python-Skript folgende Zeilen vorausgesetzt:
-
Hallo,
Ich habe mich nun an systemd herangewagt. Das Programm wird auch ordnungsgemäß ausgeführt, jedoch wird nicht auf die Internetverbindung gewartet.
Folgendes ist meine main.service Datei in /lib/systemd/system/:
Code
Display More[Unit] Description=Main Script Service Requires=network-online.target After=netctl-auto@interface.service [Service] Type=idle ExecStart=/usr/bin/python /home/pi/main.py [Install] WantedBy=multi-user.target
Auch in der Log-Datei ist ein Networkfehler zuerkennen.
Gruß
Nils
-
Vielen Dank ich werde mich mal erkunden! :)
-
Super hat funktioniert. Vielen Dank :)
-
Hallo zusammen,
Ich hoffe auf diesem Weg zu einer Lösung zu gelangen. Seid längerem versuche ich einen Autostart von einem python-Programm über die rc.local Datei zurealisieren.
In der dazugehörigen Log-Datei des Python Skripts wird folgende Exception ausgegeben: [Errno -3] Temporary failure in name resolution
Über systemctl status rc-local wird dies ausgegeben:
Code
Display Morerc-local.service - /etc/rc.local Compatibility Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled) Drop-In: /lib/systemd/system/rc-local.service.d +-debian.conf /etc/systemd/system/rc-local.service.d +-ttyoutput.conf Active: active (running) since Sat 2018-01-13 10:53:29 CET; 1min 2s ago Process: 447 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS) CGroup: /system.slice/rc-local.service +-461 python /home/pi/RPiMessstation/main.py Jan 13 10:53:31 raspberrypi rc.local[447]: ALSA lib conf.c:4996:(snd_config_expand) Args evaluate error: No such file or directory Jan 13 10:53:31 raspberrypi rc.local[447]: ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM bluealsa Jan 13 10:53:31 raspberrypi rc.local[447]: ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device' Jan 13 10:53:31 raspberrypi rc.local[447]: ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory Jan 13 10:53:31 raspberrypi rc.local[447]: ALSA lib conf.c:4996:(snd_config_expand) Args evaluate error: No such file or directory Jan 13 10:53:31 raspberrypi rc.local[447]: ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM bluealsa Jan 13 10:53:31 raspberrypi rc.local[447]: Cannot connect to server socket err = No such file or directory Jan 13 10:53:31 raspberrypi rc.local[447]: Cannot connect to server request channel Jan 13 10:53:31 raspberrypi rc.local[447]: jack server is not running or cannot be started Jan 13 10:53:31 raspberrypi rc.local[447]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock Warning: rc-local.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Mich verwundert nur, das das Programm einwandfrei manuell startet aber nicht über die rc.local Datei.
Vielen Dank im voraus,
JackerNils