Python执行sql文件

By | 2013/03/26

Python如果想要操作Mysql数据库,需要使用MYSQLdb库,但是MYSQLdb只能够执行sql语句,不能够执行*.sql文件…
之前我有想过先读取sql文件中的内容,然后再逐行执行,但是这样的话对sql文件的格式就会有要求,一条sql语句必须在一行,查了一会资料发现有一个简单的方法:
 
 

from subprocess import Popen, PIPE

#execute sql file 
sqlfile = "/home/moose/site.sql"

process = Popen('mysql -h%s -u%s -p%s --default-character-set=%s' \
                %(host, dbuser, dbpasswd, dbcharset), stdout=PIPE, stdin=PIPE, shell=True)
output = process.communicate('source '+sqlfile)

 
 

Leave a Reply

Your email address will not be published. Required fields are marked *