我想在Python中创建一个空文件。但是我很难创建一个..Below是我用来创建的Python代码,但它给了我错误:
gdsfile = "/home/hha/temp.gds"
if not (os.path.isfile(gdsfile)):
os.system(touch gdsfile)
我得到的错误: 文件“/home/hha/bin/test.py”,第29行 os.system(touch gdsfile) ^ SyntaxError:语法无效
但是从命令行,我可以使用:touch
创建新文件非常感谢你的帮助 霍华德
答案 0 :(得分:6)
首先你有一个语法错误,因为os.system()
需要一个字符串参数而你没有提供一个。这将修复您的代码:
os.system('touch {}'.format(gdsfile))
构造一个字符串并将其传递给os.system()
。
但更好的方法(在Python> = 3.3中)只需使用内置的open()
打开文件:
gdsfile = "/home/hha/temp.gds"
try:
open(gdsfile, 'x')
except FileExistsError:
pass
这指定模式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