Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
in meinem Skript will ich eine bestimmte Datei entfernen. Wenn das fehlschlägt weil z.B. de Datei gerade noch verwendet wird.
Soll das Skript 5 Sekunden warten und es dann nochmal probieren. Und das als loop solange bis es funktioniert.
Code Beispiel ist in Python 2.7 das ist notwending aufgrund der verwendeten Bibliotheken.
while f in os.listdir(pdf_dir):
try:
print getActualTime()+" REMOVING "+f+" FROM INPUT FOLDER!"
os.remove(os.path.join(pdf_dir,f))
except Exception as e:
print e
time.sleep(5)
sparrow hat geschrieben: Donnerstag 20. August 2020, 07:54
Wechsel auf Python 3.x. Wirklich. Wenn die Bibliotheken das nicht können, dann brauchst du andere Bibliotheken. Die musst du halt suchen.
Warum das mit der while-Schleife nicht funktionieren soll, verstehe ich nicht.
Ich benutze für diesen Fall 2.7 wegen der win32print win32api Bibliotheken.
Es geht mir ums drucken. Das skript druckt pdf-Dateien sobald sie in einen Hotfolder fallen auf dem gewünschten Drucker der lokal installiert ist.
Wenn du eine Bibliothek (Modul) kennst welches das kann, bin ich sofort dabei mit python3.8
Vielen Dank euch allen!
Wenn du dann umgesteigen bist solltest du auch nicht mehr os.remove() und os.listdir() verwenden. Stattdessen besser das pathlib Modul mit path.unlink() und path.glob()
Ob eine Datei existiert, prüft man nicht mit ›in os.listdir‹ sondern per ›isfile‹. gewöhn Dir gleich sprechende Variablennamen an, f sollte wohl filename heißen, und die tatsächliche Zeit bekommst Du bei einem Computer nicht, da gibt es höchstens die aktuelle Zeit, die man nach Namenskonvention (Funktionsnamen schreibt man wie Variablennamen komplett klein) get_current_time schreiben würde.
sparrow hat geschrieben: Donnerstag 20. August 2020, 08:24
win32print ist doch Teil von pywin32. Und das ist ganz normal für Python 3.8 verfügbar.
Unter 3.8 und höher habe ich es noch nie installiert bekommen. Versucht hab ich es immer mit pip auf macOS catalina und windows 10 und bekomme dann eine Meldung wie:
ERROR: Could not find a version that satisfies the requirement pywin32
ERROR: No matching distribution found for pywin32
Vielen Dank für die Hilfe und Ratschläge! Das pathlib module werde ich mir aufjedenfall anschauen und nochmal versuchen das ganze unter py3.8 zum laufen zu bringen.
Unter maxOS sollte das auch nicht tun. Das heißt ja pyWIN32, weil es WINdows-Dinge tut. Aber unter Windows kann man das problemlos mit pip installieren und es funktioniert. Kann man auch gut auf deren PyPIi sehen.