Skip to main content
added 233 characters in body
Source Link
Mark Rushakoff
  • 260.1k
  • 47
  • 412
  • 401

To see if a database exists, you can sqlite3.connect to the file that you think contains the database, and try running a query on it. If it is not a database, you will get this error:

>>> c.execute("SELECT * FROM tbl")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
sqlite3.DatabaseError: file is encrypted or is not a database

sqlite3.connect will create the database if it doesn't exist; as @johnp points out in the comments, os.path.exists will tell you whether the file exists.

To check for existing tables, you query against sqlite_master. For example:

>>> 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

To see if a database exists, you can sqlite3.connect to the file that you think contains the database, and try running a query on it. If it is not a database, you will get this error:

>>> c.execute("SELECT * FROM tbl")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
sqlite3.DatabaseError: file is encrypted or is not a database

To check for existing tables, you query against sqlite_master. For example:

>>> 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

To see if a database exists, you can sqlite3.connect to the file that you think contains the database, and try running a query on it. If it is not a database, you will get this error:

>>> c.execute("SELECT * FROM tbl")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
sqlite3.DatabaseError: file is encrypted or is not a database

sqlite3.connect will create the database if it doesn't exist; as @johnp points out in the comments, os.path.exists will tell you whether the file exists.

To check for existing tables, you query against sqlite_master. For example:

>>> 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
added 313 characters in body
Source Link
Mark Rushakoff
  • 260.1k
  • 47
  • 412
  • 401

To see if a database exists, you can sqlite3.connect to the file that you think contains the database, and try running a query on it. If it is not a database, you will get this error:

>>> c.execute("SELECT * FROM tbl")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
sqlite3.DatabaseError: file is encrypted or is not a database

To check for existing tables, you query against sqlite_master. For example:

>>> 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

To see if a database exists, you can sqlite3.connect to the file that you think contains the database, and try running a query on it. If it is not a database, you will get this error:

>>> c.execute("SELECT * FROM tbl")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
sqlite3.DatabaseError: file is encrypted or is not a database

To check for existing tables, you query against sqlite_master.

To see if a database exists, you can sqlite3.connect to the file that you think contains the database, and try running a query on it. If it is not a database, you will get this error:

>>> c.execute("SELECT * FROM tbl")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
sqlite3.DatabaseError: file is encrypted or is not a database

To check for existing tables, you query against sqlite_master. For example:

>>> 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
Source Link
Mark Rushakoff
  • 260.1k
  • 47
  • 412
  • 401

To see if a database exists, you can sqlite3.connect to the file that you think contains the database, and try running a query on it. If it is not a database, you will get this error:

>>> c.execute("SELECT * FROM tbl")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
sqlite3.DatabaseError: file is encrypted or is not a database

To check for existing tables, you query against sqlite_master.