2017-03-17 1 views
0

디렉토리에서 모든 PDF의 페이지 수를 얻기 위해 PyPDF2를 사용하려고합니다. 하나의 pdf 파일에서 페이지 수를 찾으려면 .getNumPages()를 사용할 수 있지만 디렉토리를 거쳐 모든 파일에 대한 페이지 수를 얻어야합니다. 어떤 아이디어?Python을 사용하여 디렉토리의 모든 PDF 문서에서 페이지 수를 가져옵니다.

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) 

이 코드는 바로 dataframe에 디렉토리의 첫 번째 PDF 파일에서 페이지 수를 추가합니다 : 여기

내가 지금까지 가지고있는 코드입니다. 내가 PdfFilereader에 대한 디렉토리 경로를 추가하려고하면() 나는

PermissionError:[Errno 13] Permission denied. 
+0

이 작업을 수행하려고 시도 적이 : 내 컴퓨터에서 실행하려면이 코드를 얻을 수 **

루프 내부에 오픈() 문을 배치하여이었다 너 먼저? 그렇다면 코드를 게시 한 다음 도움을 요청해야합니다. StackOverflow는 사람들이 당신을 위해 일하도록하는 곳이 아닙니다! – mrpopo

+0

mrpopo 그래서 그 측면을 감사하지만 그는 단지 두 줄의 코드가 필요하므로 어쩌면 우리가 예외를 만들 수 있습니다 :) –

+0

난 StackOverflow에 새로운이야! 내 게시물을 편집하고 코드를 추가했습니다. – Zfrieden

답변

0

그래, 디렉토리의 모든 PDF 파일 이름의 목록을 반환

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

사용 얻는다.

편집 ** :

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

도움을 주셔서 감사합니다! 디렉토리에있는 모든 PDF 파일 이름 목록을 찾을 수 있습니다. 디렉토리에서이 PDF 파일의 페이지 수를 찾는 데 문제가 있습니다. – Zfrieden

+0

@Zfrieden http://stackoverflow.com/a/17931249/3110529 시험해보기 – Dillanm

+0

Dillanm 허가 오류가 발생했습니다 –

관련 문제