python splitlines()方法

splitlines() 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表
如果参数 keepends 为 False,不包含换行符
如果为 True,则保留换行符。

sql =   """
select * from
table a inner join table b
on a.id = b.id;
"""

sql = sql.splitlines(True)
>>>>> ['\n', 'select * from\n', 'table a inner join table b\n', 'on a.id = b.id;\n']

sql = sql.splitlines(False)
>>>>> ['', 'select * from', 'table a inner join table b', 'on a.id = b.id;']

将MySQL注释去掉,并转为小写

sql = """
-- MySQL单行注释方法
select * from sys_user limit 2;
"""
sql = ''.join(map(lambda x: re.compile(r'(^--\s+.*|^/\*.*\*/;\s*$)').sub('', x, count=1), sql.splitlines(1))).strip().lower()

sql >>>> select * from sys_user limit 2;