ミドリコ雑記帖

ミドリコが思いついたことをなんでも書く場所。Amazonアソシエイト参加、楽天アフィリエイト利用しています

【#06】プログラム完全初心者がPythonを触ってみた(基礎設計の見直し)

 前の記事はこちら。
midoliko-tsuki.hatenablog.com

 テキストを新規作成して結果を書き込むのはできそうな気がする。でも、ディレクトリ内のPDF全部に同じ処理を繰り返している中で、結果のテキストファイルに元のPDFと同じ名前をつけるやり方が分からない。
 ということで、我が家のヘルプデスクこと夫をつかまえて聞いてみました。

夫「混乱してるみたいだから、まず書いてみて」

 こ、混乱なんかしてへんわ!と不満だったのですが、目に見えてないと分かりにくいのは確かなので、順番に書き出してみました。

  1. PDFのフォルダを取得
  2. テキストファイル作成
  3. フォルダから任意のファイルを取得
  4. 画像に変換
  5. OCR
  6. テキストデータに変換する
  7. テキストファイルに保存して閉じる

 というところまで書いて、テキストファイルを保存するフォルダはいつ作ったらいいの?と尋ねたら、「場所を決めないと作れないよ」と言われました。ええっそうなの?でもそうか!

  1. 結果フォルダを作成
  2. PDFのフォルダを取得
  3. 結果フォルダ内にテキストファイル作成
  4. フォルダから任意のファイルを取得
  5. 画像に変換
  6. OCR
  7. テキストデータに変換する
  8. テキストファイルに保存して閉じる

 というところで再度つっこみが。PDFフォルダを取得するだけでは、その中のどのファイルに対して処理を実行していいのか分からない。なのでPDFフォルダのファイル名リストを取得して、順番に実行していく、らしい。「何の順番でとか指定するの?」と聞いてみたら、特に必要なければそこは指定しないでいいらしくて、じゃあフォルダ渡したらそこから適当に処理してくれよー、という気もしますが、コンピュータ相手に駄々をこねても仕方ないので従います。

 で、ファイル名リストを取得するので、ついでにここで取得した文字列を使って、変換後のテキストファイル名にしたらいいよ、と言われました。

  1. 結果フォルダを作成。フォルダ名は「ocr_作業した日時(yymmddhhmmss)」
  2. PDFフォルダのファイル名リストを取得
  3. ファイル名リストからPDFを選び出して変換対象リストを作る
  4. 変換対象リストから変換対象ファイルを選択する
  5. 変換対象ファイルの最後3文字をtxtに置換した文字列を作る
  6. 結果フォルダ内にテキストファイルを新規作成する。ファイル名は前項で作った、変換対象ファイルの最後3文字をtxtに置換した文字列
  7. 画像に変換
  8. OCR
  9. テキストデータに変換する
  10. テキストファイルに保存して閉じる

 PDFだけを選び出してるのでpdfをtxtに置換するんじゃだめなの?と聞いてみたのですが、この場合はやらない方がいいと言われました。置換だと、ファイル名にpdfという文字列があった場合、そこもtxtになってしまうから、だそうです。なるほど、幽遊白書の海藤くんの「あ、ついでに氷も」のやつみたいだ(そうじゃない)。
 
 それはともかく、全体にまだ狐につままれたような気持ちなので、これを実際に書いてみることにしました。

 続きはこちら。
midoliko-tsuki.hatenablog.com