Pythonでテキストファイルを1行ずつ読み取る

Python3で、テキストファイルを1行ずつ読み込んでみました。

目次

  1. 読み込むテキストファイル
  2. listメソッドで読み込む
  3. readlinesメソッドで読み込む
  4. forを使って読み込む

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

1行ずつ読み込むには、いくつか方法があります。

今回は試しに下記のような内容のテキストファイルを、1行ずつ読み込んでみました。

1 いろは
2 にほへと
3 ちりぬるを
4 ちはやふる
5 神代も聞かず
6 竜田川
7 からくれなゐに
8 水くくるとは
9 おわり

listメソッドで読み込む

テキストファイルをopenで開いてlistメソッドで読み込むと、1行毎に分割したリストが帰ってきます。

>>> with open('pytest.txt', mode='rt', encoding='utf-8') as f:
...     read_data = list(f)
...

>>> read_data
['1 いろは\n', '2 にほへと\n', '3 ちりぬるを\n', '4 ちはやふる\n', '5 神代も聞かず\n', '6 竜田川\n', '7 からくれなゐに\n', '8 水くくるとは\n', '9 おわり']

readlinesメソッドで読み込む

テキストファイルをopenで開いてreadlinesメソッドで読み込むと、1行毎に分割したリストが帰ってきます。

>>> with open('pytest.txt', mode='rt', encoding='utf-8') as f:
...     read_data = f.readlines()
...

>>> read_data
['1 いろは\n', '2 にほへと\n', '3 ちりぬるを\n', '4 ちはやふる\n', '5 神代も聞かず\n', '6 竜田川\n', '7 からくれなゐに\n', '8 水くくるとは\n', '9 おわり']

readlinesメソッドの引数を指定することで、途中まで読み込むということができます。引数は、読み込んだ行のサイズです。

下記の例では、1行目が5文字ですのでreadlinesの引数に5を指定すると1行目まで、6を指定すると次の行まで読み込まれます。

>>> with open('pytest.txt', mode='rt', encoding='utf-8') as f:
...     read_data = f.readlines(5)

>>> read_data
['1 いろは\n']

>>> with open('pytest.txt', mode='rt', encoding='utf-8') as f:
...     read_data = f.readlines(6)

>>> read_data
['1 いろは\n', '2 にほへと\n']

ちょっと使い方が難しいですね。

forを使って読み込む

forを使って読み込んでみます。

こうすると、読み込む際に1行ずつ条件分岐できたりして、便利そうですね。

>>> with open('pytest.txt', mode='rt', encoding='utf-8') as f:
...     for line in f:
...         print(line)

1 いろは

2 にほへと

3 ちりぬるを

4 ちはやふる

5 神代も聞かず

6 竜田川

7 からくれなゐに

8 水くくるとは

9 おわり

広告

Pythonのファイル入出力カテゴリの投稿