minte9
LearnRemember



Statement

There is no need to close files, with open statement takes care of that.
 
"""With open statement benefits:
No need to close the file, 'with open' takes care of that.
Fewer lines of code,fewer bugs."""

import os

DIR = os.path.dirname(os.path.realpath(__file__))
file = DIR + "/data/file.txt"

with open(file, "w") as f:
    f.write("New line 1 \n")
    f.write("New line 2 \n")

with open(file) as f:
    print(f.read())
        # New line 1
        # New line 2

Multiple Files

Open multiple files in a single statement.
 
"""With open statement benefits:
Open multiple files in a single with statement.
"""

import os

DIR = os.path.dirname(os.path.realpath(__file__))
A = DIR + "/data/A.txt"
B = DIR + "/data/B.txt"

with open(A, "w") as fa, open(B, "w") as fb:
    fa.write(os.path.basename(A) + ": Line 1")
    fb.write(os.path.basename(B) + ": Line 1")

with open(A) as fa, open(B) as fb:
    print(fa.read()) # myfileA.txt: Line 1
    print(fb.read()) # myfileB.txt: Line 1

Exception

File will be closed before handling the exception.
 
"""Using with open statement
you have excellent handling in case of exception."""

import os

DIR = os.path.dirname(os.path.realpath(__file__))
file = DIR + "/data/file.txt"

with open(file, "w") as f:
    f.write("0")

try:
    print("Open file to read ...")
    with open(file) as f:
        data = f.read()
        x = 1 / data # 1 / 0
        print(data) # line not reached
except:
    print("Error!")
    if f.closed == False:
        print("File not closed - not ok")
    else:
        print("File closed before exception - ok")



  Last update: 346 days ago