Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
619 views
in Technique[技术] by (71.8m points)

mysql - execute *.sql file with python MySQLdb

How can execute sql script stored in *.sql file using MySQLdb python driver. I was trying


cursor.execute(file(PATH_TO_FILE).read())

but this doesn't work because cursor.execute can run only one sql command at once. My sql script contains several sql statements instead. Also I was trying


cursor.execute('source %s'%PATH_TO_FILE)

but also with no success.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

From python, I start a mysql process to execute the file for me:

from subprocess import Popen, PIPE
process = Popen(['mysql', db, '-u', user, '-p', passwd],
                stdout=PIPE, stdin=PIPE)
output = process.communicate('source ' + filename)[0]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...