如何在python中创建空文件

how*_*ard -4 python

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

gdsfile  = "/home/hha/temp.gds"
if not (os.path.isfile(gdsfile)):
    os.system(touch gdsfile)
Run Code Online (Sandbox Code Playgroud)

我得到的错误:文件"/home/hha/bin/test.py",第29行os.system(touch gdsfile)^ SyntaxError:语法无效

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

非常感谢你的帮助霍华德

mha*_*wke 7

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

os.system('touch {}'.format(gdsfile))
Run Code Online (Sandbox Code Playgroud)

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

但更好的方法(在Python> = 3.3中)只需使用open()内置函数打开文件:

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

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

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


如果您使用的是Python 2或早期版本的Python 3,则可以使用os.open()独占标志打开该文件.

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
Run Code Online (Sandbox Code Playgroud)