Предполагая, что запросы заканчиваются на границах строк, вы можете просто добавлять строки вместе, пока они не сделают полный запрос.
Что-то вроде:
filename='/var/test.sql'
fp = open(filename)
lines = ''
while True:
a = fp.readline()
if not a:
break
try:
cursor.execute(lines + a)
lines = ''
except e:
lines += a
Если это только операторы вставки, вы можетеищите окончания строк;и со следующей строки, начинающейся с «INSERT».
filename='/var/test.sql'
fp = open(filename)
lines = ''
while True:
a = fp.readline()
if not a:
break
if lines.strip().endswith(';') and a.startswith('insert'):
cursor.execute(lines)
lines = a
else:
lines += a
# Catch the last one
cursor.execute(lines)
edit: заменил trim()
на strip()
и понял, что нам не нужно выполнять строку a
во втором примере кода.