プログラム 技術

Pythonでファイル読み込み

ちょっと私的なプログラムをPythonで作成しようとしてその初歩的なことのメモとなります

バージョン
OSWindows 11 Pro
Python3.12

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

ファイル読み込みについては以下のサイトがとても参考になります

参考サイト
【Python】テキストファイルを読み込む方法【readline、pathlibなど】
【Python】テキストファイルを読み込む方法【readline、pathlibなど】

pythonでテキストファイルのデータを読み込む方法について紹介しています。readメソッド、readlinesメソッド ...

続きを読む

読み込もうとしたらエラーが発生

いざSHIFT-JISのテキストファイルをエンコードを指定せずに読みこもうとしたら以下のエラーが発生したので調べたら文字コードが問題だったらしく、読み込む際のエンコードをUTF-8にしたらエラーが解消されました

UnicodeDecodeError: 'cp932' codec can't decode byte 0x86 in position 14: illegal multibyte sequence

UnicodeDecodeErrorは、指定されたエンコーディングに基づいてバイト列を文字列にデコードしようとしたときに、不正なマルチバイトシーケンスが見つかったことを意味するエラー。実際のファイルの文字コードと読み込み時に指定した文字コードが異なっているときに表示される変換エラーです。

【Python】UnicodeDecodeError: 'cp932' codec can't decode byte 0x81...エラーの原因と解決方法 #Python - Qiita
# open関数の引数に渡す
with open(file_path, encoding="utf-8") as f:
    print(f.read())

# linecacheの時は問題なく読み込めた
line = linecache.getline(file_path, rownum)
print(line)

# read_textの引数に渡す
p = pathlib.Path(file_path)
data = p.read_text(encoding="utf-8")

# pathlibの時はopen関数の引数に渡す
p = pathlib.Path(file_path)
with p.open('r', encoding="utf-8") as f :

CSVファイル読み込み

CSVファイル読み込みについては以下のサイトが参考になりました
こちらの場合は文字コードがSHIFT-JISでも問題なくファイルが読み込めたので上記で発生したエラーは何が原因なのかよくわかりませんでした

参考サイト
PythonでCSVファイルを読み込み・書き込み(入力・出力) | note.nkmk.me
PythonでCSVファイルを読み込み・書き込み(入力・出力) | note.nkmk.me

Pythonの標準ライブラリのcsvモジュールを使うと、CSVファイルの読み込み・書き込み(新規作成・上書き保存・追記) ...

続きを読む

-プログラム, 技術
-