如何在python中创建空文件

2024-06-17 14:49:15 发布

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

我想用Python创建一个空文件。但是我很难创建一个..下面是我用来创建的Python代码,但它给了我错误:

gdsfile  = "/home/hha/temp.gds"
if not (os.path.isfile(gdsfile)):
    os.system(touch gdsfile)

我得到的错误: 文件“/home/hha/bin/test.py”,第29行 操作系统(touch gdsfile) ^ 语法错误:无效语法

但在命令行中,我可以使用:touch创建新文件

非常感谢你的帮助 霍华德


Tags: 文件path代码homeifos错误not
1条回答
网友
1楼 · 发布于 2024-06-17 14:49:15

首先,有一个语法错误,因为os.system()需要一个字符串参数,而您没有提供。这将修复您的代码:

os.system('touch {}'.format(gdsfile))

它构造一个字符串并将其传递给os.system()

但一个更好的方法(在Python>;=3.3中)是使用^{}内置代码打开文件:

gdsfile  = "/home/hha/temp.gds"
try:
   open(gdsfile, 'x')
except FileExistsError:
   pass

这指定模式x,这意味着独占创建-如果文件已经存在,操作将失败,但如果文件不存在,则创建它。

这比使用os.path.isfile()然后使用open()更安全,因为它避免了潜在的竞争条件,即文件可能由检查和创建之间的另一个进程创建。


如果您使用的是Python 2或Python 3的早期版本,则可以使用^{}打开带有exclusive标志的文件。

import os
import errno

gdsfile  = "/home/hha/temp.gds"
try:
    os.close(os.open(gdsfile, os.O_CREAT|os.O_EXCL))
except OSError as exc:
    if exc.errno != errno.EEXIST:
        raise

相关问题 更多 >