Выполнить файл .sql в Python с помощью MySQLdb

У меня есть файл .sql, содержащий кучу SQL-запросов, каждый из которых занимает несколько строк. Я хочу выполнять эти запросы в MySQL через Python, используя MySQLdb.

sqlite3имеет «нестандартный ярлык» для этой цели, называемый executescript(), но похоже, что в MySQLdbнет эквивалентной функции.

Я заметил этот старый вопрос 2 года назад, который задавал то же самое, но ответы меня не удовлетворили.Ответы в основном таковы:

Используйте подпроцесс , чтобы запустить команду mysqlи отправить ей свой файл .sql.

Это работает, но довольно неэлегантно и вносит нежелательную сложность с обработкой ошибок и т.п.

Если каждый запрос находится в одной строке, просто выполняйте каждую строку отдельно.

Но в моем случае они охватывают несколько строк, так что это не сработает.

Если каждый запрос не находится на одной строке, каким-то образом соедините их.

Но как? Я имею в виду, что я могу достаточно легко взломать что-то, поэтому вам не нужно отвечать недоработанными ответами здесь, и, возможно, это то, что я в конечном итоге сделаю, но есть ли уже установленная библиотека, которая делает это? Я бы чувствовал себя более комфортно с комплексным и правильным решением, а не с хаком.

5
задан Community 23 May 2017 в 12:03
поделиться