Python でファイルを開くときは、常にファイルを閉じなければならないことは承知しています。ただし、ファイルを変数に割り当てておらず、印刷関数で開いているだけの場合はどうなるのだろうと思っていました。
例:print(open('file.txt','r').read())
関数内で開いたファイルを閉じる方法はありますか?
よりもpythonicなもの
F=open('file.txt','r')
print(F.read())
F.close()
Python でファイルを開くときは、常にファイルを閉じなければならないことは承知しています。ただし、ファイルを変数に割り当てておらず、印刷関数で開いているだけの場合はどうなるのだろうと思っていました。
例:print(open('file.txt','r').read())
関数内で開いたファイルを閉じる方法はありますか?
よりもpythonicなもの
F=open('file.txt','r')
print(F.read())
F.close()
with
コンストラクトを使用します。
with open('file.txt', 'r') as f:
print(f.read())
ファイルが非常に大きい場合は、一度に 1 行ずつ反復して出力することをお勧めします。
with open('file.txt', 'r') as f:
for line in f:
print(line, end='')
もちろん、ファイルがそれほど大きい場合、通常のコンソールに出力するのはおそらく役に立ちませんが、この方法は大きなファイルを処理する場合に非常に役立ちます。
そのため、そのようなファイルを開くことはお勧めできません。
コンテキストマネージャーを使用するだけです:
with open('file.txt','r') as f:
print(f.read())