import sys
import sqlite3 as lite
from ntpath import basename
class createDB():
sql_key = None
sql_value = None
TABLE_NAME = None
DB_FILE = None
fp = None
def get_table_name(self):
name = basename(self.fp)
TABLE_NAME = name.split('.')[0]
return TABLE_NAME
def get_sql_key(self):
myFile = None
try:
myFile = open(self.fp, 'r')
lines = [line for line in myFile if line.strip()]
_sql_key = lines[0]
_sql_value = lines[1:]
_sql_key = _sql_key.decode('gbk', 'ignore')
self.sql_key = _sql_key.split(' ')
self.sql_value = _sql_value
except IOError, E:
print 'Error', E
sys.exit(-1)
finally:
myFile.close()
def create_sql_tables(self):
DROP_TABLE = 'DROP TABLE IF EXISTS ' + self.get_table_name()
CREATE_TABLE = 'CREATE TABLE ' + self.get_table_name() + ' ('
key = self.sql_key
for i in key:
CREATE_TABLE = CREATE_TABLE + i + ' TEXT, '
CREATE_TABLE = CREATE_TABLE[:-2] + ')'
conn = None
try:
conn = lite.connect(self.DB_FILE)
with conn:
cur = conn.cursor()
cur.execute(DROP_TABLE)
cur.executescript(CREATE_TABLE)
except lite.Error, e:
if conn:
conn.rollback()
print 'Error Create DB TABLE Error:', e.args[0]
sys.exit(-2)
finally:
if conn:
conn.close()
objTest = createDB()
objTest.fp = r'D:\student.txt'
objTest.DB_FILE = r'T.db'
objTest.get_sql_key()
objTest.create_sql_tables()