使用python创建空文件

问题:

我想使用python创建一个路径为x的文件。我一直在使用os.system(y) y = 'touch %s' % (x)。我已经找了一个非目录版本的os.mkdir,但我还没有找到任何东西。有没有这样的工具来创建文件而不打开它,或使用系统或popen / subprocess?

回答:

 There is no way to create a file without opening itos.mknod("newfile.txt")but it requires root privileges on OSX)。创建文件的系统调用实际上是open()O_CREAT标志。所以无论如何,你总是打开文件。
因此,简单地创建文件而不截断文件的最简单的方法是:

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

实际上,您可以省略.close(),因为CPython的引用GC将在open()语句完成后立即关闭它,但是明智地做到这一点,依靠CPython特定的行为也是不太好的。
如果您想要touch的行为(即如果文件存在则更新mtime):

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

您可以扩展此目的,也可以创建路径中不存在的任何目录:

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

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Create empty file using python

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 4 = 5