LoginSignup
5
8

More than 3 years have passed since last update.

Python3: PDF の表を csv に変換する

Last updated at Posted at 2018-08-20

次のページを参考にしました。
PDFの表を表のまま読み取るには tabula
chezou/tabula-py

バッチで変換ができるようにしました。
Arch Linux で確認しました。

前提ソフトのインストール
Java が必要です。

sudo pacman -S jdk10-openjdk
sudo pip install tabula-py

変換プログラム

pdf_to_csv.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
#   pdf_to_csv.py
#
#                   Aug/22/2018
#
# ------------------------------------------------------------------
import  sys
import tabula
# ------------------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")
#
file_pdf = sys.argv[1]
file_csv = sys.argv[2]

tabula.convert_into(file_pdf, file_csv, pages="all", output_format="csv")
#
sys.stderr.write("*** 終了 ***\n")
# ------------------------------------------------------------------

サンプルの PDF のダウンロード

wget http://www.fdma.go.jp/html/life/saigai_densyo/02.pdf

実行方法

./pdf_to_csv.py 02.pdf output.csv

変換結果

output.csv
"",都道府,,,
"事例No",市町村名,,言い伝えの内容 趣旨・ポイント,出典(添付資料)
"",県名,,,
012122- 北海道 留萌市,,,堤防へヤナギを植える。 ヤナギの根を張らす事によ,「留萌川の変遷」
1,,,り、堤防に強度を与え、河,(平成5年) 添付
"",,,川を保護する。,資料2-1・P-210
"",,,,「水害を考える」よ
"",,,,り
013676- 北海道 奥尻町,,,地震がきた、高台へ逃げろ。 津波による被害から逃げる,「言い伝え」として
1,,,ための教訓。,の口伝情報のみ
013676- 北海道 奥尻町,,,避難路の確認を日常の合言葉に。 家族で災害時の避難路の確,添付資料2-1を参
2,,,認、待ち合わせ場所の確認,照。
"",,,を常にしていくための教,
"",,,訓。,
013676- 北海道 奥尻町,,,地震が発生したらすぐにドアを開こ 玄関が唯一の逃げ道になり,添付資料2-1を参
3,,,う。 がちなので、逃げ道の確保,照。
"",,,をしておくという教訓。,
013676- 北海道 奥尻町,,,避難は徒歩がいちばん。 車が立ち往生すると避難活,添付資料2-1を参
4,,,動の妨げとなるという教,照。
"",,,訓。,
013676- 北海道 奥尻町,,,火の始末はそれぞれの義務。 地震後の火災はみんなが火,添付資料2-1を参
5,,,の始末を心がけることとし,照。
"",,,た教訓。,
015580- 北海道 上湧別町,,,アイヌ同士の大きな争いが起き、湧別 湧別川は雨が降ればたちま,アイヌ人の言い伝え
1,,,アイヌは遠軽町瞰望岩の砦まで追い詰 ち氾濫する。屯田入植後も,遠軽町史(昭和32年7
"",,,められていたが、夜半の暴風雨で湧別 例年のように悩まされた,月)p35~37(添付資
"",,,川が大洪水を起こし、勝利寸前だった が、その後の徹底した治水,料2-1)
"",,,十勝アイヌを全滅させた。 対策に活かされた。,
"",,,,写真(添付資料2-
"",,,,2)
016918- 北海道 別海町,,,地震雲(飛行機が通過した後のような 地震発生への警戒を促す前,情報のみ
1,,,直線上の雲など)が空に出たらその何 兆現象を示すもの,
"",,,日後かに地震がくる。,
016918- 北海道 別海町,,,ネズミが家屋から逃げるとその家屋は 火災への警戒を促す前兆現,情報のみ
2,,,火災に遭う。 象を示すもの,
024031- 青森県 百石町,,,地震直後、海鳴りがしたら避難する 津波による被害から逃れる,百石町誌(上巻1233
1,,,ための教訓。昭和8年三陸大 頁),
"",,,津波時に古老が触れ回って,
"",,,いた。,
024066- 青森県 横浜町,,,地震がきたら山に避難しろ。 津波からの被害を防ぐ。,「言い伝え」として
1,,,,の口伝情報のみ
024465- 青森県 階上町,,,海の災害としての伝説がある。「鶏に これは防災に係る言い伝え,舘花久二男:「階上
1,,,ほろぼされた村」 とはいえないかもしれない,の昔話」
"",,,が、津波等の海災害にかか,正部家種康:「歴史
"",,,る伝説と考えられる。,と伝説 はちのへ物
"",,,,語」
030007- 岩手県,,,津波てんでんこ 津波による共倒れという悲,山下文男「津波
1,,,劇を防ぎ、生存率を高める,TSUNAMI」1997年、
"",,,ための哀しい知恵,P169-182
030007- 岩手県,,,地震があったら高台に逃げろ。 津波による被害から逃れる,「言い伝え」として
2,,,ための教訓。,の口伝情報及び津波
"",,,,記念碑に残された警
"",,,,句。
030007- 岩手県,,,低いところに住家を建てるな。 津波による被害を防ぐため,「言い伝え」として
3,,,の教訓。,の口伝情報及び津波
"",,,,記念碑に残された警
"",,,,句。

次の環境で動作を確認しました。

$ python --version
Python 3.8.2
5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8