open() in Python does not create a file if it doesn't exist

trh178 picture trh178 · Jun 3, 2010 · Viewed 897.1k times · Source

What is the best way to open a file as read/write if it exists, or if it does not, then create it and open it as read/write? From what I read, file = open('myfile.dat', 'rw') should do this, right?

It is not working for me (Python 2.6.2) and I'm wondering if it is a version problem, or not supposed to work like that or what.

The bottom line is, I just need a solution for the problem. I am curious about the other stuff, but all I need is a nice way to do the opening part.

The enclosing directory was writeable by user and group, not other (I'm on a Linux system... so permissions 775 in other words), and the exact error was:

IOError: no such file or directory.

Answer

muksie picture muksie · Jun 3, 2010

You should use open with the w+ mode:

file = open('myfile.dat', 'w+')