Mit Python ein File name change tool basteln

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
Benutzeravatar
Cytzix
User
Beiträge: 9
Registriert: Dienstag 27. Juni 2017, 21:40

Hallo, ich möchte für meine Arbeit ein kleines Tool schreiben, mit dem ich die Dateinamen automatisch umbenennen kann.

Wunschvorstellung: Durch Drag&Drop Datei einwerfen, das Tool durchsucht den Inhalt der PDF Datei und entscheidet nach vorgegebenen Regeln, wie die Datei umbenannt wird.

Ich bin noch ein Python Anfänger. D.h. ich habe schon etwas Erfahrung mit Pygame, Tkinter und Webpy. Grundsätzlich: wäre sowas möglich mit Python UND gibt es dafür ein passendes Framework oder eine gute Quelle, wo ich mich reinlesen kann, um das obengenannte zu erreichen?

Herzlichen Dank im Voraus!
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was sind denn diese geheimnisvollen Regeln, die in der PDF Datei stehen? So wie du das beschreibst sprengt das selbst die Grenzen der fortgeschrittensten maschinellen Intelligenz.
Benutzeravatar
Cytzix
User
Beiträge: 9
Registriert: Dienstag 27. Juni 2017, 21:40

Z.b. Suche nach Stichwörtern. Also wenn "Banane" im im Text auftaucht, soll die Datei zu Banane.pdf umbenannt werden.
Ganz einfache Regeln.
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist keine einfache Regel. In dem Text tauchen viele Wörter auf. Wieso ist Banane das entscheidende Wort?
Benutzeravatar
Cytzix
User
Beiträge: 9
Registriert: Dienstag 27. Juni 2017, 21:40

Banane war nur ein Beispiel. Ich arbeite mit vielen Dokumenten auf der Arbeit und bekomme oft PDF batches mit benannt vom Scanner, also zB "Scan03204230432040234". Deshalb will ich für bestimmte Dokumente wie z.b. CV, Data Consent Form, Financial Disclosure usw. bestimmte Regeln festlegen. Falls Stichwörter auftauchen, soll das Dokument umbenannt werden. Falls keine Matches, soll es nicht umbenannt werden.

Mir gehts hier nun um Umsetzung. Ob Python dafür gut geeignet wäre und welches Framework dafür am besten geeignet wäre. Bzw. wie die Vorangehensweise aussehen sollte. Quellen wären super.
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Deine problembeschreibung ist immer noch völlig ungenügend, und daraus irgendetwas konkretes ableiten zu können. Alles was da rauskommt ist "irgendwas mit PDF". Da kann vielleicht https://github.com/euske/pdfminer/ helfen - aber angesichts der Tatsache das es sich um Scans handelt bin ich da skeptisch.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Ich arbeite mit vielen Dokumenten auf der Arbeit und bekomme oft PDF batches mit benannt vom Scanner
Wenn du Dokumente von Scanner kommt, enthalten diese ziemlich sicher keine Text, sondern "nur" ein Bild eingebettet ins PDF. Damit ist das Dokument erst mal nicht durchsuchbar. D.h. du müsstest noch eine OCR-Software drüber laufen lassen, damit du überhaupt Text bekommst. Wie gut die Erkennung des Texts ist, ist dann von der Scanqualität abhängig (und der Qualität der Texterkennung).

Wie __deets__ schon sagte: das ist schon machbar, aber trivial / einfach ist das nicht.

Gruß, noisefloor
Benutzeravatar
Cytzix
User
Beiträge: 9
Registriert: Dienstag 27. Juni 2017, 21:40

Hey Leute,

vielen Dank für eure Kommentare.

Ich habe mein Ziel erreicht. Dazu habe ich ganz einfach das Modul PyPDF2 benutzt.

Es wird das gewünschte PDF importiert, mitpdfReader.getPage() und extractText() kann ich den Inhalt als String wiedergeben. Dann lasse ich einfach eine If else Abfrage laufen und falls die Kriterien zutreffen, wird das Dokument einfach nach meinen Vorgaben umbenannt.

Ziemlich easy.
LG
nezzcarth
User
Beiträge: 1635
Registriert: Samstag 16. April 2011, 12:47

Cytzix hat geschrieben: Ziemlich easy.
Ja, bis -- zum Beispiel -- ein Geschäftsbrief "zufällig" das Wort "Lebenslauf" enthält und daher als CV klassifiziert wird, weil das eben deiner Regel entspricht. Ich meine, wenn diese Variante für dich so funktioniert, ist's ja okay. Aber Du solltest dir bewusst sein, dass das nicht besonders stabil ist. Für solche Anwendungszwecke gibt es diverse Textklassifizierungsverfahren, die dann nicht mehr ganz so easy sind. :)
Benutzeravatar
Cytzix
User
Beiträge: 9
Registriert: Dienstag 27. Juni 2017, 21:40

Ja, das stimmt. Jedoch reicht es für meine Zwecke völlig aus. Außerdem kann man ja durch Hinzufügen von if crit1 and crit2 and crit3 == True die Auswahl weiter eingrenzen.

Eine App für jedermann hatte ich nicht vor zu bauen, sondern bestimmte Bereiche in meinem Arbeitsablauf erleichtern.
Und das ist mir letzendlich gelungen ; )

LG
Antworten