Seite 1 von 1

Parameterangabe kommt aus dem Nirvana anstatt von mir

Verfasst: Dienstag 10. August 2021, 13:09
von rfr-mailbox@gmx.de
Es geht um folgenden Codeausschnitt:
------------------------------------------------------------------------------
from PyPDF2 import PdfFileReader

def extract_information(pdf_path):n
with open(pdf_path, 'rb') as f:
pdf = PdfFileReader(f)
information = pdf.getDocumentInfo()
number_of_pages = pdf.getNumPages()
--------------------------------------------------------------------------------
welcher zu folgender Reaktion (in Spyder3) führt:

.......................................................................................

File "/home/rfr/.config/spyder-py3/untitled0.py", line 26, in <module>
extract_information(path)
File "/home/rfr/.config/spyder-py3/untitled0.py", line 5, in extract_information
with open(pdf_path, 'rb') as f:

FileNotFoundError: [Errno 2] No such file or directory: 'reportlab-sample.pdf'
.........................................................................................
Richtig ist, dass das File nicht gefunden werden kann, weil es nicht da ist.
Aber wie mache ich das, dass ich einen Pfad zum file übergebe, den ich auswählen kann?

Gruss

Robert

Re: Parameterangabe kommt aus dem Nirvana anstatt von mir

Verfasst: Dienstag 10. August 2021, 13:11
von __deets__
Verstehe ich nicht. Willst du eine grafischen Dateidialog, oder worum gehts es?

Re: Parameterangabe kommt aus dem Nirvana anstatt von mir

Verfasst: Dienstag 10. August 2021, 14:00
von rfr-mailbox@gmx.de
Das Programm versucht, eine Datei namens 'reportlab-sample.pdf zu finden, die es aber nicht gibt.
Ich will meine eigene Datei als Parameter übergeben.

Re: Parameterangabe kommt aus dem Nirvana anstatt von mir

Verfasst: Dienstag 10. August 2021, 14:03
von __deets__
Irgendwo in deinem Quelltext wird dieser Wert doch stehen. Da in dem Quelltext den du zeigst dieser Pfad, der nicht existiert, nicht vorkommt, muss der wohl irgendwo auf deiner Festplatte schlummern. Aber wo kann hier doch keiner sagen.

Laut Fehlermeldung in einer Variable namens “path”.

Re: Parameterangabe kommt aus dem Nirvana anstatt von mir

Verfasst: Dienstag 10. August 2021, 14:56
von YAPD
Hi,

so kann das auch nicht funktionieren. Wie _deets_ sagte, muss das Verzeichnis ja irgendwo ermittelt
werden, das er verwendet. Hier ein Beispiel von mir, das alle PDFs in einem Verzeichnis ausliest und
anschließend mit "PdfFileReader" verarbeitet :

Code: Alles auswählen

from PyPDF2 import PdfFileReader
import glob


def extract_information(folder):

    filenames = glob.glob(folder)
    print(filenames)

    for file in filenames:

        with open(file, "r"):

            pdf = PdfFileReader(file)
            pdf_infos = pdf.getDocumentInfo()
            pdf_pages = pdf.getNumPages()
            
            print("File  : {}".format(file))
            print("Info  : {}".format(pdf_infos))
            print("Pages : {}".format(pdf_pages))

folder = "D:\\Test\\*.pdf"
extract_information(folder)
Ich hoffe, das hilft dir.

VG
YAPD

Re: Parameterangabe kommt aus dem Nirvana anstatt von mir

Verfasst: Mittwoch 11. August 2021, 05:49
von Sirius3
@YAPD: was soll das open, das gar keinen Sinn hat?

Re: Parameterangabe kommt aus dem Nirvana anstatt von mir

Verfasst: Mittwoch 11. August 2021, 11:35
von YAPD
Sirius3 hat geschrieben: Mittwoch 11. August 2021, 05:49 @YAPD: was soll das open, das gar keinen Sinn hat?
Ja du hast Recht, natürlich braucht man bei PDF in diesem
Beispiel keinen open ( )Befehl.