2017-03-17 31 views
0

PyPDF2を使用して、ディレクトリ内のすべてのpdfのページ数を取得しようとしています。私は.getNumPages()を使用して1つのpdfファイルのページ数を調べることができますが、ディレクトリを辿ってすべてのファイルのページ数を取得する必要があります。何か案は?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) 

このコードは、単にデータフレームにディレクトリ内の最初のPDFファイルからページ数を追加します。ここでは

は、私がこれまで持っているコードです。私はPdfFilereader(へのディレクトリパスを追加しようとした場合)私は

PermissionError:[Errno 13] Permission denied. 
+0

あなたがこれを行うことを試みてきましたあなた自身最初?その場合は、コードを投稿してからヘルプを求めてください。 StackOverflowはあなたのためにあなたの仕事をする人々を得る場所ではありません! – mrpopo

+0

mrpopo私はSOの側面を理解していますが、彼は2行のコードしか必要としないので、おそらく例外を作ることができます:) –

+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

ディラン彼は許可エラーを受けています –

関連する問題