見出し画像

PythonでPDFのテキストを出力してみる003

前回までのコード

import sys
import pypdfium2 as pdfium

# 読み込みのPDFデータ
pdf = pdfium.PdfDocument('2024r06_sg_qs.pdf')

# 書き込み用ファイルを用意
file_w = '2024r06_sg_qs.txt'

for page in pdf:
    textpage = page.get_textpage()
    text = textpage.get_text_range()
    print(text)
    with open(file_w, 'a') as f:
        for w in text:
            f.write(w)

前回までのコードでこんな事に気づいた方もいると思います。

あれ?これって毎回ファイル削除しないと追記してしまうのではない??

こんな事に気づいた方は、正解です。毎回僕も削除しながらやってました。やっていて気づきました。毎回ファイル削除するの非常に面倒くさい・・・
なんというか、、、なんか違う。。。と思い始めました。なぜpython使ってファイルも勝手に作られるのに、なぜ削除は手動なんだ・・・と

ファイルも消したい

というわけで、なんやかんやでファイル消していこうと思いました。

やりたいこと

  • ファイル(2024r06_sg_qs.txt)が存在する→削除する

  • ファイル(2024r06_sg_qs.txt)が存在しない→スルー

こんな感じな事をやりたいなと思いました。

Pythonにはファイル削除が標準でできる

なにかライブラリをインストールするなど必要なく、Pythonでは標準の機能で削除などが可能です。というわけでコードを書いていきます。

import os

# ファイルが存在する場合は削除
if(os.path.isfile('2024r06_sg_qs.txt')):
    os.remove('2024r06_sg_qs.txt')

これで削除できます。if文にしているのは、ファイルが存在したら削除するという条件式のためになります。

ファイル名を入れるのが面倒だ

なんというか、ファイル名をいれるともしこのファイル名を変えたりしたときにズレがでたり、エラーになるといけないなと思いました。そこでファイル名を変数にしておきます

if(os.path.isfile(file_w)):
    os.remove(file_w)

こんな感じにします。

完成形コード

import sys
import os
import pypdfium2 as pdfium


# 読み込みのPDFデータ
pdf = pdfium.PdfDocument('2024r06_sg_qs.pdf')

# 書き込み用ファイルを用意
file_w = '2024r06_sg_qs.txt'

# ファイルが存在する場合は削除
if(os.path.isfile(file_w)):
    os.remove(file_w)

for page in pdf:
    textpage = page.get_textpage()
    text = textpage.get_text_range()
    print(text)
    with open(file_w, 'a') as f:
        for w in text:
            f.write(w)

これでコマンド実行するたびに追記されるわけでもなく、ファイルが存在したら一度削除して新しく作るというのが出来ました

この記事が気に入ったらサポートをしてみませんか?