使用python创build空文件

我想用python创build一个path为x的文件。 我一直在使用os.system(y) ,其中y = 'touch %s' % (x) 。 我找过一个非目录版本的os.mkdir ,但是我一直没有find任何东西。 有没有这样的工具来创build一个文件,而无需打开它,或使用系统或popen / subprocess?

没有办法创build一个文件,而不打开它os.mknod("newfile.txt")但它需要在OSX上的root权限 )。 创build文件的系统调用实际上是open()O_CREAT标志。 所以无论如何,你总是会打开文件。

所以,最简单的方法来创build一个文件,而不是截断它的情况下,它是这样的:

 open(x, 'a').close() 

实际上你可以忽略.close()因为CPython的refcounting GC会在open()语句结束之后立即closures它,但是明确地做到这一点比较清楚,并且依赖于CPython的行为也不好。

如果你想touch的行为(即在文件存在的情况下更新mtime):

 import os def touch(path): with open(path, 'a'): os.utime(path, None) 

你可以扩展它来创buildpath中不存在的任何目录:

 basedir = os.path.dirname(path) if not os.path.exists(basedir): os.makedirs(basedir) 

当然,有一种方法可以在不打开的情况下创build文件。 这就像调用os.mknod("newfile.txt")一样简单。 唯一的缺点是这个调用需要OSX上的root权限。