Pythonでファイルの読み込み / 書き込みをする方法を紹介します。
Pythonでファイルを読み込み / 書き込みするにはopen関数を使います
ファイルに書き込む方法
file = open("filename","w") file.write("Text") file.close()
ファイルを読み込む方法
file = open("filename","r") text = file.read() file.close() print(text)
最後には必ずfile.close()を入力してください
以上の方法で、ファイルを読み込み / 書き込みすることができます。
しかし、ファイルの中身に全角文字が含まれる場合、書き込むときにエラーが発生したり、
読み込むときに、文字化けが発生することがあります。それを回避するにはエンコードを指定する必要があります。
エンコードを指定して読み取る方法
file = open("filename","r",encoding="UTF_8",errors="ignore") text = file.read() file.close()
このコードではUTF-8のファイルを読み込んでいます。
errors="ignore"となっていますが、エラーを無視するということで、読み取れなかった文字を無視して
続けて読み取るという意味です。
エンコードを指定して書き込む方法
file = open("filename","w",encoding="UTF_8",errors="ignore") file.write("あいうえおText") file.close()
このコードではUTF-8で書きこんでいます。
これにも念のため、errors="ignore"を指定しています。
エンコードを検出する方法
ファイルを読み取るとき、指定したエンコードではなかったりして、結局正しくファイルを読み取れない...ってときがあります。
Pythonなら簡単にエンコードを自動検出することができます。
その前にエンコード判定に必要なライブラリをインストールする必要があります。
pip install chardet
インストールが完了したら、あとはコードを書いて実行するだけです。
import chardet FILENAME = "filename" tmp = open(FILENAME,"rb") encode = chardet.detect(tmp.read())["encoding"] tmp.close() file = open(FILENAME,"r",encoding=encode,errors="ignore") text = file.read() file.close() print(text)
このコードを実行しれば、指定したファイルのエンコードを判定してくれて、
ファイルを読み取ってくれます。ただし、エンコードがShiftJISとかだと、正しく読み取れないとのことでした。
今回はここまでにします。
次は、ファイル操作について、もう少し詳しく見ていきましょう。
テストコメント
返信削除コメントが投稿できるか確かめてします…