Search code examples
pythonpython-2.7exceptionfile-io

What is a good way to handle exceptions when trying to read a file in python?


I want to read a .csv file in python.

  • I don't know if the file exists.
  • My current solution is below. It feels sloppy to me because the two separate exception tests are awkwardly juxtaposed.

Is there a prettier way to do it?

import csv    
fName = "aFile.csv"

try:
    with open(fName, 'r') as f:
        reader = csv.reader(f)
        for row in reader:
            pass #do stuff here
    
except IOError:
    print "Could not read file:", fName

Solution

  • How about this:

    try:
        f = open(fname, 'rb')
    except OSError:
        print "Could not open/read file:", fname
        sys.exit()
    
    with f:
        reader = csv.reader(f)
        for row in reader:
            pass #do stuff here