Best use of "open" context manager
Cameron Simpson
cs at cskk.id.au
Sun Jul 7 19:02:38 EDT 2024
On 07Jul2024 22:22, Rob Cliffe <rob.cliffe at 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
More information about the Python-list
mailing list