はのは、以下の完全例示のため、文字列を変換foo
機能を考えてみましょう:同じ句で2つのコンテキストマネージャを使用してファイルをインプレースで変更することは安全ですか?
def foo(data):
### processes data in a fancy way ###
return data.lower() # :P
それはこのように、場所のファイルを変更する典型的なパターンを交換すると良いでしょう場合、私は思っていましたこの他のいずれかによって
# snippet1
with open(path, "r") as f:
out = foo(f.read())
with open(path, "w") as f:
f.write(out)
:
# snippet2
with open(path, "r") as f1:
out = foo(f1.read())
with open(path, "w") as f2:
f2.write(out)
は、これはすべての可能なシナリオに行うために安全ですか?
関連情報https://www.python.org/dev/peps/pep-0343/
このシナリオでは、コンテキストマネージャーは関係ありません。問題は、1つのファイルに対して2つのハンドルがあることです。 – BartoszKP