Pythonでファイルの中の文字列を検索してみる
Pythonを使ってテキストファイルの中の文字列を検索して、その位置(行)を調べてみました。
目次
テキストファイルを読み込む
まず、テキストファイルを読み込んで、行毎のリストを作ります。 ioモジュールのreadlinesメソッドを使います。
L = file.readlines(hint)
変数 |
内容 |
---|---|
file |
読み込むファイルオブジェクト |
hint |
読み込む行数。既定値は-1(全部) |
L |
行のリスト |
イテレータとしても使えるようなので、リストの内包表記にしてみます。
題材として、青空文庫からダウンロードした夏目漱石の「こころ」のテキストファイルを、テキストエディタで改行コードと文字コードをLFとUTF8Nに変換したものを読み込んでみます。
>>> with open('kokoro-utf8n.txt', mode='r', newline='', encoding='utf-8') as f_in:
... lines = [line for line in f_in]
これでlinesというリストに「こころ」の各行が読み込まれました。
文字列を検索する
試しに「鎌倉」という文字が出てくる行を調べてみます。
forでリストから要素(1行の文字列)を取り出して、inでその文字列に検索対象の文字が存在するか調べます。もし検索文字が含まれていたら、indexを調べて表示します。
>>> for i in lines:
... if '鎌倉' in i:
... print(lines.index(i))
...
23
24
25
46
52
54
1566
テキストエディタで「鎌倉」を検索してみましたが、合ってました。
公開日
広告