pythonで複数のtxtファイルを一度に読み込みたい


Jupyterで複数のtxtファイルを一度に読み込むにはどうすればいいのでしょうか.  
例えば，fileというディレクトリに格納された、`data1.txt〜data100.txt` というファイルを読み込んで、それぞれを変数
`data1〜data100`としたい時、

[code]

    f1=open('file/data1.txt', 'r','utf-8')
    data1=f1.read()
    f1.close()
    
[/code]

という動作を繰り返させたいのですが、皆様でしたらどうされるでしょうか。  
初歩的な質問で大変恐縮ですが、ご教授いただけましたら幸いです。




ファイル名を `data1.txt` から `data100.txt`
まで繰り返すには、[`str.format()`](https://docs.python.jp/3/library/stdtypes.html#str.format)
関数が使えます。たとえば変数 `i` が `1` から `100` まで繰り返すとき、`'data{}.txt'.format(i)` と書くと
`data1.txt` から `data100.txt` までを繰り返せます。

また、読み込んだ 100 個のファイルデータをそれぞれ格納するには、長さが 100 のリストを作る方が良いでしょう。`data1` から `data100`
までの 100 個の変数を作るのではなく、`data` という変数を作り `data[0]` から `data[99]`
までで参照できるようにしよう、ということです。

これらを踏まえ、たとえば下のように書けます。

[code]

    data = [None] * 100
    for i in range(100):
        f = open('file/data{}.txt'.format(i + 1), mode='r', encoding='utf-8')
        data[i] = f.read()
        f.close()
    
[/code]

もっと言うと、これだと `read()` している間にエラーが起こると `close()` されないかもしれないため、次のように `with`
を使って書き直した方が良いです。このことは Python 3
の[チュートリアルに書かれています](https://docs.python.jp/3/tutorial/inputoutput.html#reading-
and-writing-files)。

[code]

    data = [None] * 100
    for i in range(100):
        with open('file/data{}.txt'.format(i + 1), mode='r', encoding='utf-8') as f:
            data[i] = f.read()
    
[/code]




ファイル名を `data1.txt` から `data100.txt`
まで繰り返すには、[`str.format()`](https://docs.python.jp/3/library/stdtypes.html#str.format)
関数が使えます。たとえば変数 `i` が `1` から `100` まで繰り返すとき、`'data{}.txt'.format(i)` と書くと
`data1.txt` から `data100.txt` までを繰り返せます。

また、読み込んだ 100 個のファイルデータをそれぞれ格納するには、長さが 100 のリストを作る方が良いでしょう。`data1` から `data100`
までの 100 個の変数を作るのではなく、`data` という変数を作り `data[0]` から `data[99]`
までで参照できるようにしよう、ということです。

これらを踏まえ、たとえば下のように書けます。

[code]

    data = [None] * 100
    for i in range(100):
        f = open('file/data{}.txt'.format(i + 1), mode='r', encoding='utf-8')
        data[i] = f.read()
        f.close()
    
[/code]

もっと言うと、これだと `read()` している間にエラーが起こると `close()` されないかもしれないため、次のように `with`
を使って書き直した方が良いです。このことは Python 3
の[チュートリアルに書かれています](https://docs.python.jp/3/tutorial/inputoutput.html#reading-
and-writing-files)。

[code]

    data = [None] * 100
    for i in range(100):
        with open('file/data{}.txt'.format(i + 1), mode='r', encoding='utf-8') as f:
            data[i] = f.read()
    
[/code]

