该段代码巧妙地利用正则来判断数据库中是否存在某个数据表。
虽然我们也可以简单直接地使用for循环,但这种利用正则处理list的方式,还是值得记录下。
废话不多说,上代码。
# 判断表是否在库中
def sql_table_exists(self,table_name):
sql = "show tables;"
self.cur.execute(sql)
tables = [con.fetchall()]
table_list = re.findall('(\'.*?\')', str(tables)) # 将列表转为字符串类型,以便能用正则将多重元组转为一维列表
# print('table_list 1 ===>>>',table_list)
table_list = [re.sub("'", '', each) for each in table_list]
# print('table_list 2 ===>>>',table_list)
if table_name in table_list:
# 存在返回1
return 1
else:
# 不存在返回0
return 0