Python 実践 データ加工/可視化 100本ノック に挑戦 ノック98

Python 実践 データ加工/可視化 100本ノック」を購入したので、

一通りやっているところです。今日はノック98を行います。

資料は以下から入手できます。

Python実践 データ加工/可視化 100本ノック|サポート|秀和システム

 

ノック98 : PDFデータを読み込んでみよう

PDFファイルを読み込むには以下のようにモジュールをインストールする必要があります。

pip install pdfminer.six

 

次に必要なモジュールをimportします。

from pdfminer.pdfinterp import PDFResourceManager,PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.pdfpage import PDFPage
from pdfminer.layout import LAParams

 

PDFResourceManagerはPDF内のリソース管理を行います。

PDFPageInterpreterは取得したモページを解析するのに使用します。

TextConverterはテキストを取り出す機能です。

PDFPageはPDFを1ページずつ取得します。

LAParamsはPDFレイアウトのパラメータを保持する機能です。

 

PDFファイルを読み込んでテキストファイルに出力します。

 

PDFファイルは2ページであり、ページごとの内容は以下の通りです。

1ページ目:

これは、サンプルテキストです。そして、これが一つめの段落になっています。いろいろ

読み込んでいきましょう。 

続いて、これが二つ目の段落になっています。 

これが三つめの段落です。

 

2ページ目:

ここから 2 ページ目です。 

2 ページ目二つ目の段落です。 

 

from pdfminer.pdfinterp import PDFResourceManager,PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.pdfpage import PDFPage
from pdfminer.layout import LAParams

pdf_data = open('data/サンプル_pdf.pdf','rb')
txt_file = 'data/sample_pdf.txt'
out_data = open(txt_file,mode='w')

rscmger = PDFResourceManager()
laprms  = LAParams()
device  = TextConverter(rscmger,out_data,laparams=laprms)
itprtr  = PDFPageInterpreter(rscmger,device)

for page in PDFPage.get_pages(pdf_data):
    itprtr.process_page(page)

out_data.close()
device.close()
pdf_data.close()

 

実行結果

sample_pdf.txtにサンプル_PDF.pdfファイルの中身が保存されました。

 

 

保存されたデータを読み込んでPDFの内容と一致するか確認します。

with open('data/sample_pdf.txt',mode='r') as f :
    content = f.read()
print(content)

 

実行結果

これは、サンプルテキストです。そして、これが一つめの段落になっています。いろいろ

読み込んでいきましょう。

続いて、これが二つ目の段落になっています。

これが三つめの段落です。

 


ここから 2 ページ目です。

2 ページ目二つ目の段落です。

 

 

 

 

/* -----codeの行番号----- */