どのようにこのファイルをクローズするか、ファイルが自動的に上記の文は1つのライナーであると私はwith
声明を避けたかったwith
パイソン近いファイル
lines = open(file_name).readlines()
コンテキストマネージャのように閉じますん、しかし、今私はファイルを閉じることができないので、上記のステートメントは役に立たないと思う。
with open(file_name) as f:
.....
どのようにこのファイルをクローズするか、ファイルが自動的に上記の文は1つのライナーであると私はwith
声明を避けたかったwith
パイソン近いファイル
lines = open(file_name).readlines()
コンテキストマネージャのように閉じますん、しかし、今私はファイルを閉じることができないので、上記のステートメントは役に立たないと思う。
with open(file_name) as f:
.....
ます。これは、例外は途中で提起されている場合でも、ファイルが正しくそのスイートが終了した後に閉じられているという利点がありwith
を使用することができます。
with open(file_name, 'r') as readfile:
lines = readfile.readlines()
あなたは、むしろwith
声明よりも、自分の式でopen(filename)
を使用し、独自の機能に文でラップし、式の中で、それを使用する傾向がある場合。あなたがしたい場合は、メモリフットプリントを削減するために発電機を使用することができます
def open_readlines_and_close(filename, *args, **kwargs):
with open(filename, *args, **kwargs) as file:
lines = file.readlines()
return lines
lines = open_readlines_and_close(file_name)
# apologies for the weird function name
。
lines = (lambda f=open(file_name): [f.readlines(), f.close()][0])()
しかし、これは非常に読み難くないため、非常にPythonicとはみなされません。
ファイルは実行終了時(終了時)に閉じられます。手動でファイルを閉じるには: 'f = open(file_name); lines = f.readlines(); f.close() ' –
答えは[docs](https://docs.python.org/3.5/library/functions.html#open)にあります。 – Maroun
コンテキストマネージャのフォームを使用すると、ファイルが閉じたときに明示的になります。 – jonrsharpe