954,515 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

problem with try function

I am trying to catch error on file input/output. The try functions works fine but as it pass to the next line my code breaks. How can I exit gracefully when the 'infile' doesnt exist?

try:
    infile = open ('Book1.txt', "r")
    
    
except IOError:
    print "input file %s is missing" %'Book1.txt'


tex1 = infile.readline()
outfile = open ('Book11.txt', "w")
while tex1:
    rfields = tex1.split()

    # do something


    print >> outfile, 'something'


outfile.close()
infile.close()


the error message I got:

input file Book1.txt is missing
Traceback (most recent call last):
File "D:\pythonLearing\trial.py", line 11, in
tex1 = infile.readline()
NameError: name 'infile' is not defined

Thank you in advance.

chebude
Newbie Poster
24 posts since Nov 2008
Reputation Points: 10
Solved Threads: 0
 

Put the code under the try or in a function and call the function under the try

def read_file(infile):
    tex1 = infile.readline()
    outfile = open ('Book11.txt', "w")
    while tex1:
        rfields = tex1.split()

    # do something


    print >> outfile, 'something'


    outfile.close()
    infile.close()

try:
    infile = open ('Book1.txt', "r")
    read_file(infile)
    
except IOError:
    print "input file %s is missing" %'Book1.txt'
except:
    print "Some other error"
woooee
Nearly a Posting Maven
2,454 posts since Dec 2006
Reputation Points: 777
Solved Threads: 714
 

else part of try is for the case of no exception happened, there is exit function and same you can do also by raising SystemExit, using function like above is also good idea to organize code. You can raise exception in function and handle it in calling function if you end except with raise.

pyTony
pyMod
Moderator
5,359 posts since Apr 2010
Reputation Points: 782
Solved Threads: 852
 

Thanks a lot. That was a great help

chebude
Newbie Poster
24 posts since Nov 2008
Reputation Points: 10
Solved Threads: 0
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: