Archivfunktionen

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.
Antworten
Bebbi
User
Beiträge: 144
Registriert: Dienstag 21. April 2020, 19:21

Hallo zusammen

Momentan werden bei uns täglich unglaublich viele PDF Dokumente manuell in verschiedene Ordner verschoben. Da sich im Dateinamen des PDF fast der Pfad verbirgt, bin ich mir sicher, dass dies mit einem entsprechenden Programm einiges schneller und mit weniger Fehler getan werden kann. Hier ein Beispiel:

Dateiname: 20201206 Rechnung 2536985

Die Dateien verfügen jeweils über das Datum, den Dateinamen (z.B. Rechnung, Mahnung, Stornierung etc.) und die Kundennummer.

Unser Ablagesystem ist nun so, dass zuerst der Ordner des Kunden (2536985) gefunden werden muss, danach das entsprechende Jahr (2020) ausgewählt werden muss und dann die Datei in den Ordner mit dem Namen (Rechnung) verschoben werden sollte.

Ist das grundsätzliche möglich (wovon ich stark ausgehe)? Falls ja, welche Bibliotheken werden dafür benötigt und wo finde ich allenfalls Informationen dazu?

Besten Dank
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Bebbi: Klingt machbar. Zeichenkettenoperationen, eventuell reguläre Ausdrücke, eventuell das `datetime`-Modul (um die Datumsangabe zu validieren), und das `pathlib`-Modul. Eventuell noch `shutil` falls über Dateisystemgrenzen hinweg ”verschoben” werden muss. Alles in der Standardbibliothek.

Was bedeuten es wenn ein Kundenordner gefunden werden muss?

Edit: Ach so: Logging wäre wahrscheinlich noch sinnvoll, damit man später nachvollziehen kann was das Programm (nicht) gemacht hat.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

Ich denke auch, dass das in der Grundvariante gut und relativ leicht umsetzbar ist, mit den von __blackjack__ beschriebenen Modulen. Vermutlich reicht das für den Praxiseinsatz schon. Logging würde ich auch einbauen. Weiterhin verschiebe ich die Datei in solchen Fällen normalerweise nicht direkt, sondern kopiere sie unter einem anderen Namen an den Zielort, benenne sie erst nach Abschluss des Kopiervorgangs richtig und lösche dann die Ausgangsdatei.

Wenn das produktiv eingesetzt werden soll, gibt es aber schon ein paar Randfälle, die auftreten können, und von denen man zumindest wissen sollte. Was passiert, wenn das Verschieben unterwegs unterbrochen wird (Platte voll, Netzlaufwerk weg, …), oder die Berechtigungen nicht (mehr) stimmen? Was passiert, wenn der Prozess mehrfach gestartet wird? Was passiert, wenn das erwartete Benennungsschema der Dateien nicht eingehalten wird? etc. Das kann man alles abfangen (wenn das in deinem Praxisfall relevant ist; oft ist es das vmtl. nicht), aber dann wird es schon etwas aufwändiger.
Antworten