使用python创建空文件[重复]

2020/10/31 16:52 · python ·  · 0评论

我想x使用python创建一个带有路径的文件我一直在使用os.system(y)where y = 'touch %s' % (x)我一直在寻找的非目录版本os.mkdir,但找不到任何东西。是否有类似这样的工具可以创建文件而无需打开文件,也无需使用系统或popen / subprocess?

有没有方法来创建,而无需打开文件时,它os.mknod("newfile.txt")但它需要在OSX root权限)。创建文件的系统调用实际上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)

当然,有一种无需打开即可创建文件的方法。就像打电话一样简单os.mknod("newfile.txt")唯一的缺点是此调用需要OSX的root特权。

本文地址:http://python.askforanswer.com/shiyongpythonchuangjiankongwenjianzhongfu.html
文章标签:
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!