如何检查数据库文件是否已存在?并且,如果它存在,我如何检查它是否已经有一个特定的表?
要查看数据库是否存在,您可以sqlite3.connect
使用您认为包含数据库的文件,并尝试对其运行查询.如果它不是数据库,您将收到此错误:
>>> c.execute("SELECT * FROM tbl") Traceback (most recent call last): File "", line 1, in sqlite3.DatabaseError: file is encrypted or is not a database
sqlite3.connect
如果数据库不存在,将创建数据库; 正如@johnp在评论中指出的那样,os.path.exists
会告诉你文件是否存在.
要检查现有表,请查询sqlite_master.例如:
>>> def foo(name): ... for row in c.execute("SELECT name FROM sqlite_master WHERE type='table'"): ... if row == (name,): ... return True ... return False ... >>> foo("tz_data") True >>> foo("asdf") False