Sujet : Re: Best use of "open" context manager
De : cs (at) *nospam* cskk.id.au (Cameron Simpson)
Groupes : comp.lang.pythonDate : 08. Jul 2024, 01:02:38
Autres entêtes
Message-ID : <mailman.18.1720393364.2981.python-list@python.org>
References : 1 2
User-Agent : Mutt/2.2.13 (2024-03-09)
On 07Jul2024 22:22, Rob Cliffe <
rob.cliffe@btinternet.com> wrote:
Remember, the `open()` call returns a file object _which can be used as a context manager_. It is separate from the `with` itself.
Did you test this?
f = open(FileName) as f:
is not legal syntax.
No. You're right, remove the "as f:".
it's legal, but doesn't work (trying to access the file after "with f" raises the same
ValueError: I/O operation on closed file.
This astounds me. Code snippet to demo this?
Here's a test script which I've just run now:
FileName = 'foo.txt'
try:
f = open(FileName)
except FileNotFoundError:
print(f"File {FileName} not found")
sys.exit()
with f:
for line in f:
print("line:", line.rstrip())
Here's the foo.txt file:
here are
some lines of text
Here's the run:
% python3 p.py
line: here are
line: some lines of text