テキストファイルを読み込む|Python

2 アクセス

はじめに

この記事では、Pythonでテキストファイルを読み込む方法について記す
青空文庫からダウンロードしたテキストを使用する

使用するテキストの情報

底本:「人間失格」新潮文庫、新潮社
   1952(昭和27)年10月30日発行
   1985(昭和60)年1月30日100刷改版
初出:「展望」筑摩書房
   1948年(昭和23年)6〜8月号
入力:細渕真弓
校正:八巻美惠
1999年1月1日公開
2011年1月9日修正
青空文庫作成ファイル:
このファイルは、インターネットの図書館、青空文庫(http://www.aozora.gr.jp/)で作られました。入力、校正、制作にあたったのは、ボランティアの皆さんです。

「図書カード:人間失格」 https://www.aozora.gr.jp/cards/000035/card301.html (最終閲覧日2024/11/25)

テキストファイルの読み込み

ファイルオープン〜読み込み

読み込みたいテキストファイルをpythonファイルと同じディレクトリに置いておく(今回のファイル名は’ningen_shikkaku.txt’)

open()
ファイルを開く
with文を用いることで、ファイルを閉じる必要がなくなる(withブロックが終了したときに自動で閉じてくれる!)
fileにファイルパス、modeにモードを指定する

様々なモードが存在するが、一番単純なものだと
読み込みモード:’r’(これがデフォルト)
書き込みモード:’w’

readlines()メソッド

ファイルを1行ごとに分割したリストとして読み込む
もし、ファイル全体を文字列として読み込みたければ、readメソッドを用いる

以上を踏まえるとコードは以下の通り

filepath = 'ningen_shikkaku.txt'

with open(file=filepath, mode='r') as f:
    textlist = f.readlines()

print(textlist[:10])

ソースコードでは、スライスを利用してリストの最初の部分だけを表示するようにしている

文字コードの違いによるエラー

以上のコードを実行すると、以下のようなエラーが発生した

実行結果

分かったこと

  • デフォルトではutf-8を読み込むようになっているらしい
  • 今回使用するテキストファイルはutf-8形式ではないらしい

文字コードの指定

ファイルを開く際にエンコード形式を指定してやる必要がある
今回はShift-JISが正解

修正したコードは以下

filepath = 'ningen_shikkaku.txt'

with open(file=filepath, mode='r', encoding='shift_jis') as f:
    textlist = f.readlines()

print(textlist[:10])

実行結果

もとのテキストファイルの先頭にある、タイトル、作者名、記号の説明部分が表示された
リストに格納できていることも確認できる
また、文の末尾には改行文字’\n’がついている

参考 ’ningen_shikkaku.txt’の先頭部分

おわりに

ダウンロードしたテキストにはルビや注のための記号が入っている
今後はこれの除去を行う予定

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です