2

我正在尝试将 mysql 数据库转储保存在 python 脚本中。这是我所拥有的:

filepath = os.path.join(BACKUPS_FOLDER, '%s.sql' % date)
print filepath # /Users/david/Desktop/updates/_backups/2013-04-07.sql
subprocess.call(shlex.split('mysqldump -u root updates > %s' % filepath ))

我收到以下错误:

mysqldump: Couldn't find table: ">"

我在这里做错了什么?

4

2 回答 2

5

--result-file=file您可以使用选项( )调用 mysqldump,subprocess.call(shlex.split('mysqldump -u root updates --result-file=%s' % filepath ))因为它会将 mysqldump 解释>为表名。

于 2013-04-07T22:56:04.243 回答
0

这就是我所做communicate()的,用于获取输出然后写入文件:

date = str(datetime.datetime.now().date())
filepath = os.path.join(BACKUPS_FOLDER, '%s.sql' % date)

args = shlex.split("mysqldump -u root updates")
p1 = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
dump_output = p1.communicate()[0]

f = open(filepath, "wb")
f.write(dump_output)
f.close()
于 2013-04-07T22:58:34.083 回答