2016-08-08 69 views
0

pdftotext ist die Anwendung, die ausgeführt wird, wenn ich diesen^Code verwende. Das funktioniert gut, aber ich versuche einen Weg zu finden, um pdftotext auszuführen, der den Dateinamen der pdf-Datei enthält, den pdftotext benutzt, um ihn in eine Textdatei umzuwandeln.Python zum Ausführen einer Anwendung aufrufen, wenn die Anwendung eine Eingabedatei benötigt

Beachten Sie, dass dies keine Frage zu pdftotext ist. Ich tippe einfach pdftotext filename .pdf und wandelt die pdf-Datei in eine Textdatei

Wenn ich in Windows verwenden cmd dies ausführen können, kein Problem. Jetzt möchte ich etwas Äquivalentes mit Python machen.

Ich habe es geändert, aber es funktioniert nicht. Mir wurde gesagt, „Das System die angegebene Datei nicht finden kann“, und ich habe in der src-Datei setzen pdftotext zusammen mit filename.pdf

import subprocess 
subprocess.call(['C:\\Users\michael\\Desktop\\Test\\pdftotext', 'filename.pdf']) 
+0

Verwenden Sie ein 'r„raw \ string“', um sicherzustellen, dass Sie wörtlichen wie mit '" keine Fehler in der Zeichenfolge machen \ m "' anstelle von '" \\ m "'. Zum Glück ist '" \ m "' kein Sonderzeichen. – eryksun

+0

Sie sind auch davon abhängig, dass sich "filename.pdf" im Arbeitsverzeichnis befindet. Das hängt davon ab, wie das Skript ausgeführt wird. Sie benötigen stattdessen den absoluten Pfad zur Datei oder einen Pfad, der sich auf das Verzeichnis des Skripts bezieht. Anfänger-Programmierer gehen oft fälschlicherweise davon aus, dass das Skriptverzeichnis und das Arbeitsverzeichnis identisch sind. – eryksun

Antwort

2

subprocess.call nimmt ein iterable wo das erste Element ist die ausführbare Datei und die folgenden sind Schalter und Parameter.

Dies bedeutet, dass Sie die oben, dies ändern müssen:

import subprocess 
subprocess.call(['C:\\Users\michael\\Desktop\\Test\\pdftotext', 'filename.pdf']) 
+0

ausgezeichnet, Prost. Ich habe das Verzeichnis falsch :( – Michael