ちょっと私的なプログラムをPythonで作成しようとしてその初歩的なことのメモとなります
バージョン | |
OS | Windows 11 Pro |
Python | 3.12 |
テキストファイル読み込み
ファイル読み込みについては以下のサイトがとても参考になります
-
【Python】テキストファイルを読み込む方法【readline、pathlibなど】
pythonでテキストファイルのデータを読み込む方法について紹介しています。readメソッド、readlinesメソッド ...
続きを読む
読み込もうとしたらエラーが発生
いざSHIFT-JISのテキストファイルをエンコードを指定せずに読みこもうとしたら以下のエラーが発生したので調べたら文字コードが問題だったらしく、読み込む際のエンコードをUTF-8にしたらエラーが解消されました
UnicodeDecodeError: 'cp932' codec can't decode byte 0x86 in position 14: illegal multibyte sequence
【Python】UnicodeDecodeError: 'cp932' codec can't decode byte 0x81...エラーの原因と解決方法 #Python - Qiita
UnicodeDecodeError
は、指定されたエンコーディングに基づいてバイト列を文字列にデコードしようとしたときに、不正なマルチバイトシーケンスが見つかったことを意味するエラー。実際のファイルの文字コードと読み込み時に指定した文字コードが異なっているときに表示される変換エラーです。
# 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モジュールを使うと、CSVファイルの読み込み・書き込み(新規作成・上書き保存・追記) ...
続きを読む