Pythonでファイルから文字列を読み込む場合、with
構文を使う方法が一般的のようですね。
こんな感じで。
with open("file.txt") as reader:
s = reader.read()
でも、read()
メソッドで一気に読み込んで、すぐにファイルを閉じるケースがほとんどじゃないですか?
ファイルを指定したら内容を取得できる…。ただそれだけの関数があれば、事足りる場合がほとんどだとと思うんですよ。と、いうことで、そんなパッケージ作りました。
使い方をチラ見せすると、こんな感じでファイルから文字列を読み込むことができます。
s = textfile.read("file.txt")
パッケージの使い方
使い方はこんな感じです。
インストール
> pip install textfile
サンプルコード
import textfile
s = textfile.read("file.txt")
textfile.read()
関数を呼び出すと、ファイルのオープン・読み込み・クローズを全てやってくれて、読み込んだ結果を戻り値として返してくれます。これこれ!こんな関数が欲しかったんだよ!
textfileパッケージを使う上での制限
簡単に文字列の読み込みを行うために、textfile.read()
関数は、いくつかの前提を設けています。
- 読み込む時のエンコーディングは
utf-8
で固定 - 一気に読み込むことしかできない。処理と並行しながらチビチビ読み込んだり、シークしてピンポイントで読み込んだり、といった事はできない。
この2つの制限が問題になることはほとんど稀だと思います。
今やほとんどのテキストファイルがutf-8
で符号化されているし、ファイル全体のテキストをごっそり読み込んで変数に格納しても全く問題ないだけのメモリ領域がある環境がほとんどです。
ということで積極的にどんどん使って頂けたらと思います!
1行短くなるだけじゃん?
textfile.read()
関数を使うと、2行で書いていたプログラムが1行になります。たった1行の違い…と言ってしまえばそれまでです。
とはいえ、塵も積もれば山となる。
テキスト読み込み処理が何度か出てくるなら、その分だけプログラムが短くなって可読性が向上し、バグが混入するリスクも減るはずなので、個人的にはけっこう意味があるんじゃないかなと思っています。