2017-03-17 3 views
0

Ich versuche PyPDF2 zu verwenden, um die Anzahl der Seiten jedes PDF in einem Verzeichnis zu erfassen. Ich kann .getNumPages() verwenden, um die Anzahl der Seiten in einer PDF-Datei zu finden, aber ich muss durch ein Verzeichnis gehen und die Anzahl der Seiten für jede Datei ermitteln. Irgendwelche Ideen? HierMit Python, um die Anzahl der Seiten in allen PDF-Dokumenten in einem Verzeichnis zu ziehen

ist der Code Ich habe bisher:

import pandas as pd 
import os 
from PyPDF2 import PdfFileReader 
df = pd.DataFrame(columns=['fileName', 'fileLocation', 'pageNumber']) 
pdf=PdfFileReader(open('path/to/file.pdf','rb')) 
for root, dirs, files in os.walk(r'Directory path'): 
    for file in files: 
     if file.endswith(".pdf"): 
      df2 = pd.DataFrame([[file, os.path.join(root,file),pdf.getNumPages()]], columns=['fileName', 'fileLocation', 'pageNumber']) 
      df = df.append(df2, ignore_index=True) 

Dieser Code wird nur hinzufügen, die Anzahl der Seiten von der ersten PDF-Datei in dem Verzeichnis des Datenrahmen. Wenn ich versuche, einen Verzeichnispfad zu PdfFilereader hinzufügen() Ich erhalte eine

PermissionError:[Errno 13] Permission denied. 
+0

Haben Sie, dies zu tun versucht selbst zuerst? Wenn ja, sollten Sie Ihren Code posten und dann um Hilfe bitten. StackOverflow ist kein Ort, an dem Menschen Ihre Arbeit für Sie erledigen können! – mrpopo

+0

mrpopo Ich schätze diesen Aspekt von SO, aber er braucht nur zwei Zeilen Code, also können wir vielleicht eine Ausnahme machen :) –

+0

Ich bin neu bei StackOverflow! Ich habe meinen Post bearbeitet und meinen Code hinzugefügt. – Zfrieden

Antwort

0

Ja, verwenden

import glob 
list_of_pdf_filenames = glob.glob('*pdf') 

die Liste aller PDF-Dateinamen in einem Verzeichnis zurückzukehren.

** Edit: **

die open() Anweisung innerhalb der Schleife Durch die Platzierung, konnte ich diesen Code bekommen auf meinem Computer laufen:

import pandas as pd 
import os 
from PyPDF2 import PdfFileReader 
df = pd.DataFrame(columns=['fileName', 'fileLocation', 'pageNumber']) 
for root, dirs, files in os.walk(r'/home/benjamin/docs/'): 
    for f in files: 
     if f.endswith(".pdf"): 
      pdf=PdfFileReader(open(os.path.join(root, f),'rb')) 
      df2 = pd.DataFrame([[f, os.path.join(root,f), pdf.getNumPages()]], columns=['fileName', 'fileLocation', 'pageNumber']) 
      df = df.append(df2, ignore_index=True) 
print(df.head) 
+0

Vielen Dank für Ihre Hilfe! Ich finde die Liste aller PDF-Dateinamen im Verzeichnis kein Problem. Ich habe Probleme, die Anzahl der Seiten in diesen PDF-Dateien im Verzeichnis zu finden. – Zfrieden

+0

@Zfrieden http://stackoverflow.com/a/17931249/3110529 versuchen Sie dies – Dillanm

+0

Dillanm er bekommt einen Erlaubnisfehler –

Verwandte Themen