Python パイソンで PDFからテキストファイルを作る方法を解説しました。Pythonで アニメを作る方法はこちら。Pythonの使い方はこちら
ほかの解説動画はこちら。
目次
- Python (パイソン) の入手
- Python (IDLE) の起動
- IDLE(Python)の操作
- PDFを読み込むライブラリ:pyMuPDF
- Python のプログラム 例1
- Python のプログラム 例2
- さらに勉強をすすめたいなら
- 9VAeきゅうべえに関する問い合わせ
Python (パイソン) の入手
Windows の場合
- Python.jpのフルインストーラ版から、ダウンロードするのが簡単。ここ(pythonlinks.python.jp) から 64bit(古いPCは32bit)などを選んでダウンロードできます。Windows10 では、コマンドプロンプトから python と入力すれば、アプリストアから Python3.1 がインストールできます。それ以外の方法でインストールした場合、インストーラ画面で、最初に下の「Add Python to PATH」にチェックをいれれば、コマンドプロンプトから、python が使えるようになります。
ラズベリーパイの場合
- python(Ver2), python3(Ver3) が最初からはいっています
- ラズベリーパイの設定についてはこちら
Mac の場合
- M1版 Macの場合、Python.jpのフルインストーラ版から、ダウンロードするのが簡単。ここ(pythonlinks.python.jp) からダウンロードできます。
- Intel 版 Mac では、python (Ver2), python3(Ver3) が最初からはいっており、ターミナルから使えました。
- ターミナルは「アプリケーション>ユーティリティ」の中にはいっています。ドックの上にターミナルアイコンをドラッグして登録しておくとよいでしょう。
python2 と python3 の違い
- python2 と python3 で書き方が違うところがあるので注意(ネット上には、python2のプログラムもあり、そのまま python3で動かすとエラーになります)
- プログラムに日本語を入れたいとき(表示したい文字が日本語など)は、python3 を使います。
Python (IDLE) の起動
Pythonを使ってみましょう。基本的な IDLE を使ってみます。
Windows の場合
- Windowsボタンをクリックし「python」と入力して、アプリ IDLE(Python) を実行。
- ターミナルから「idle」を実行してもかまいません。Python という名前で IDLE が起動します。
ラズベリーパイの場合
-
画面左上の Raspi ボタン>Programming(プログラミング) > Python の Shell ウィンドウ(実行画面)が開きます。
IDLE(Python)の操作
- Fileメニューから、New File を実行。エディタがひらきます
- ここに下のようなプログラムを入れます
- Run メニューから、Run Module を実行
- Pythonウィンドウで実行されます。エラーがあれば、ここに表示されます
PDFを読み込むライブラリ:pyMuPDF
- 参考文献: Qiita
- 以下の命令でインストールします
pip install pymupdf
Windows で _extra がみつからないエラーがでた場合
- MSVCP140.dll がないのが原因、解決方法はこちら。(Visual Studioの再配布ライブラリにはいっている)
Python のプログラム 例1
pymupdf がインストールできたら、下の Python プログラムをいれてみましょう。
- PDFファイルを開く
- 中のテキストを表示
import fitz # PDF処理(pymupdf) srcPDF = "c:/test/test.pdf" # PDFファイル適当に修正してください fr = fitz.open(srcPDF) for pg in fr: txt=pg.get_text() txt=txt.replace('\n', '') #改行削除 print(txt) fr.close() a = input("***end*** ")
- import fitz は、PDFファイル処理するライブラリです、pymupdf で導入
- srcPDF は、PDFファイルのフルパス。パスの区切りは「/」です
- fitz.open() がPDFファイルを開く関数。
- for pg in fr: は、1ページずつ読み出して、pg にいれるの意味
- pg.get_text()でテキストを取得、txt.replace('\n', '')で改行を削除しています
- print() でテキストを表示
- Input() 文字入力関数で、"***end*** " を表示して入力待ちになります
Runメニュー>Run Module で実行します。エラーがなければ PDFの中の文字が表示されるはずです。
Python のプログラム 例2
このプログラムを改造してみましょう。
- PDFから取得した文字列のうち、ある文字列1から文字列2までを書き出す
プログラム例を示します。
import fitz # PDF処理(pymupdf) import os # ファイル操作
srcPDF = "c:/test/test.pdf" # PDFファイル outTXT = "c:/test/out.txt" # 出力先フォルダ(各自の環境に合わせて修正) srch1="文字列1" #ここから srch2="文字列2" #ここまで fr = fitz.open(srcPDF) txt="" for pg in fr: txt+=pg.get_text() fr.close() x1=txt.find(srch1) if x1>=0: txt=txt[x1:] x2=txt.find(srch2) fw = open(outTXT,'x') # 'x'新規 'w'既存ファイルに書き込み 'a'追記 fw.write(txt[0:x2]) # 文字列2までのテキストを書き込みます fw.close() # 書き込み終了 a = input("***end*** ")
- x1=txt.find(srch1) で、文字列1をサーチします。文字が見つかれば x1 は0以上になります
- txt[x1:]は、x1番目(先頭は0)文字から最後までの文字列
- x2で文字列2をサーチします
- fwで文字列を書き出します
Runメニュー>Run Module で実行します。エラーがなければ テキストが作成されるはずです。
さらに勉強をすすめたいなら
- PythonでCSVファイル(エクセル)を読み出す方法
- 画像処理 OpenCV と Python を使ったアニメーション動画用紙のスキャン画像位置合わせ Webサーバー、処理の自動化(実際に運用中)
- Python + Flask でアニメGIF ダウンロードサーバーを作る
- Python パイソンで アニメを動かしてみた
9VAeきゅうべえに関する問い合わせ
- 9VAeについて、Yahoo知恵袋で質問すれば答えが得られます。
- 本記事の文章、図、アニメは複製自由です。教材、解説記事にご利用ください。