11

Possible Duplicate:
How do I check if a file exists using Python?

I am a beginner at Python. I have a bit of code that I want to handle in a way if that someone was to enter an invalid path that does not exist like Z:\ instead of C:\ I want it to raise some sort of error. I know how to go about doing it, I just don't know how to check if it will be invalid. How can I make my code check if that drive or path exists on this PC before it creates the path, is there a way to do that in python?

file_path = input("\nEnter the absolute path for your file: ") 
0

2 Answers 2

7

The Pythonic way of handling this is to "ask forgiveness, not permission": just try to perform whatever operation you were going to on the path you get (like opening files) and let the functions you're calling raise the appropriate exception for you. Then use exception handling to make the error messages more user friendly.

That way, you'll get all the checks done just in time. Checking beforehand is unreliable; what if you check whether a file exists, just before some other process deletes it?

Sign up to request clarification or add additional context in comments.

2 Comments

Or you can the input statement into a loop and then use os.path.exists(), but the answer is correct in a more Pythonic way.
@JasonMorgan: it's even a more robust and secure way. See expanded answer for rationale.
2

I guess you are looking for something like this. You can use try and except to test if things will work or not. You can also handle specific exceptions under the except block. (I'm sure urlopen will return one when it fails)

from urllib import urlopen website_path = raw_input("\nEnter the absolute path for your website: ") try: content = urlopen(website_path).read() print "Success, I was able to open: ", website_path except: print "Error, Unable to open: " , website_path 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.