解决方法
不幸的是,我并不知道一个很好的一般答案.一些dbapi(例如psycopg2)支持一次执行多个语句.如果文件不是很大,你可以将它们加载到一个字符串中并在连接上执行它们.对于其他人,我将尝试使用该数据库的命令行客户端,并使用子进程模块将数据导入到该客户机中.
如果这些方法是不可接受的,那么您必须继续执行一个小型sql解析器,可以将该文件拆分成单独的语句.这是非常棘手的100%正确的,因为你将不得不考虑数据库方言特定的文字转义规则,使用的字符集,影响文字解析的任何数据库配置选项(例如Postgresql standard_conforming_strings).
如果你只需要99.9%的正确,那么一些正则表达式的魔法应该让你得到最多的方式.