使用python创建空文件

2024-04-19 12:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 文件工具路径版本目录os系统情况
0条回答
网友
1楼 · 发布于 2024-04-19 12:35:41

不打开文件就无法创建文件存在os.mknod("newfile.txt")但它需要OSX上的根权限)。创建文件的系统调用实际上是带有O_CREAT标志的open()。所以不管怎样,你都会打开文件。

因此,简单地创建一个文件而不在文件存在时截断它的最简单方法是:

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

实际上,您可以省略.close(),因为CPython的refcounting 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)
网友
2楼 · 发布于 2024-04-19 12:35:41

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

相关问题 更多 >