Create empty file using python [duplicate]
There is no way to create a file without opening it There is
os.mknod("newfile.txt") (but it requires root privileges on OSX). The system call to create a file is actually
open() with the
O_CREAT flag. So no matter how, you'll always open the file.
So the easiest way to simply create a file without truncating it in case it exists is this:
Actually you could omit the
.close() since the refcounting GC of CPython will close it immediately after the
open() statement finished - but it's cleaner to do it explicitely and relying on CPython-specific behaviour is not good either.
In case you want
touch's behaviour (i.e. update the mtime in case the file exists):
import osdef touch(path): with open(path, 'a'): os.utime(path, None)
You could extend this to also create any directories in the path that do not exist:
basedir = os.path.dirname(path)if not os.path.exists(basedir): os.makedirs(basedir)