【Python】毎月の面倒な事務作業を自動化!PDFパスワード解除&整理スクリプトを作ってみた

This article can be read in about 4 minutes.

はじめに

こんにちは、Satomemoです。 いよいよ2026年4月の復職が近づいてきました。育休中は「時間があるようで全くない」日々でしたが、復職後はさらに「分刻み」のスケジュールになることが目に見えています。

そこで、今のうちに「毎月発生する数分の無駄作業」をPythonで自動化して、少しでも未来の自分を楽にさせることにしました。

課題:ペーパーレス化の弊害「パスワード地獄」

最近は給与明細、保育園の請求書、銀行の取引明細など、あらゆる書類がPDFで電子交付されるようになりました。これ自体はありがたいのですが、問題なのは「パスワード」です。

  • メールからPDFをダウンロードする
  • ファイルを開く
  • いつものパスワード(誕生日の下4桁とか)を入力する
  • 「パスワードなし」で別名保存し直す
  • 家計簿アプリ(Money Forwardなど)に取り込む

この作業、1つなら数秒ですが、毎月複数のファイルで発生すると地味にストレスです。特にスマホで確認したい時にパスワードを求められると「もういいや」となりがちです。

解決策:Pythonで「パスワード解除→リネーム保存」を自動化する

「決まったパスワードを入力する」という単純作業は、コンピュータが最も得意とする分野です。 今回は、以下の動きをするシンプルなスクリプトを作成しました。

  1. 特定のフォルダに入れたPDFを検知
  2. あらかじめ設定したパスワードリスト(自分や家族の誕生日など)を総当たりで試行
  3. ヒットしたらパスワードを解除
  4. 「unlocked_(元のファイル名).pdf」として保存

これなら、ダウンロードしたファイルを「Inboxフォルダ」に放り込んでスクリプトを叩くだけで、整理されたPDFが出来上がります。

実装:ライブラリ「pikepdf」を使えば一瞬

PDF操作のライブラリはいくつかありますが、今回は処理が高速で解除に強い pikepdf を採用しました。

開発環境

  • PC: MacBook Air (13-inch, M4, 2025)
  • OS: macOS Tahoe 26.2
  • 言語: Python 3.14.1

コードのイメージ あくまで自分用の効率化ツールなので、コードは非常にシンプルです。

Python

import pikepdf
import os

# 対象のファイルとパスワード
target_file = "payslip_202601.pdf"
password_list = ["19850101", "password123"] # 自分のパスワードリスト

try:
    # パスワードリストを順番に試す
    for pwd in password_list:
        try:
            # PDFを開いてみる
            pdf = pikepdf.open(target_file, password=pwd)
            
            # 開けたらパスワード解除して保存
            new_filename = f"unlocked_{target_file}"
            pdf.save(new_filename)
            print(f"成功!パスワードは {pwd} でした。")
            break
            
        except pikepdf.PasswordError:
            continue # パスワード違いなら次へ
            
except Exception as e:
    print(f"エラーが発生しました: {e}")

これだけで、いちいち手入力していた作業から解放されました。 (※実際にはフォルダ内の全ファイルをループ処理させたり、日付をファイル名に入れたりして運用しています)

注意点:セキュリティと利便性のバランス

情報セキュリティの仕事をしている身として、一応補足しておきます。

このスクリプトは「自分が正規に権限を持っている(パスワードを知っている)ファイルの閲覧を楽にする」ためのものです。 解除したPDFは誰でも見られる状態になるので、保存先を暗号化されたディスク領域にするか、個人のローカルPC内だけで管理するなど、取り扱いには注意が必要です。

「便利になる」=「ガードが下がる」ということなので、クラウドストレージ(Google Drive等)にアップロードする際は、逆にパスワードをかける等の運用ルールを決めておきましょう。

まとめ:復職に向けて「秒」を削り出す

たかがパスワード入力、されどパスワード入力。 「面倒くさいな」という感情は、自動化への第一歩です。

情シスとしてのスキルを家庭内の事務作業にも活かして、来るべき復職ライフを少しでも快適にしていきたいと思います。 次は「保育園のプリント整理」あたりを自動化したいですね…。

コメント

Copied title and URL