首先你有一個語法錯誤,因爲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
「os.system」的參數需要是一個字符串。這不是你現在通過的。另外,當你可以使用Python自己的'open'方法時,沒有理由調用'touch'命令。 – larsks