はじめに
こんにちは、Satomemoです。 いよいよ2026年4月の復職が近づいてきました。育休中は「時間があるようで全くない」日々でしたが、復職後はさらに「分刻み」のスケジュールになることが目に見えています。
そこで、今のうちに「毎月発生する数分の無駄作業」をPythonで自動化して、少しでも未来の自分を楽にさせることにしました。
課題:ペーパーレス化の弊害「パスワード地獄」
最近は給与明細、保育園の請求書、銀行の取引明細など、あらゆる書類がPDFで電子交付されるようになりました。これ自体はありがたいのですが、問題なのは「パスワード」です。
- メールからPDFをダウンロードする
- ファイルを開く
- いつものパスワード(誕生日の下4桁とか)を入力する
- 「パスワードなし」で別名保存し直す
- 家計簿アプリ(Money Forwardなど)に取り込む
この作業、1つなら数秒ですが、毎月複数のファイルで発生すると地味にストレスです。特にスマホで確認したい時にパスワードを求められると「もういいや」となりがちです。
解決策:Pythonで「パスワード解除→リネーム保存」を自動化する
「決まったパスワードを入力する」という単純作業は、コンピュータが最も得意とする分野です。 今回は、以下の動きをするシンプルなスクリプトを作成しました。
- 特定のフォルダに入れたPDFを検知
- あらかじめ設定したパスワードリスト(自分や家族の誕生日など)を総当たりで試行
- ヒットしたらパスワードを解除
- 「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等)にアップロードする際は、逆にパスワードをかける等の運用ルールを決めておきましょう。
まとめ:復職に向けて「秒」を削り出す
たかがパスワード入力、されどパスワード入力。 「面倒くさいな」という感情は、自動化への第一歩です。
情シスとしてのスキルを家庭内の事務作業にも活かして、来るべき復職ライフを少しでも快適にしていきたいと思います。 次は「保育園のプリント整理」あたりを自動化したいですね…。


コメント