我在使用 subprocess.call 使用 mysqldump 导出数据库时遇到了一些问题。我正在使用安装在 Windows 7 上的 Python 3.1。
from time import gmtime, strftime
import subprocess
DumpDir = "c:/apps/sqlbackup/";
DumpFile = "mysqldump-" + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) + ".sql";
params = [r"mysqldump --user root --password=mypassword --force --flush-privileges --compress --comments mydatabase --result-file=" + DumpDir + DumpFile];
subprocess.call(params, shell=True);
上面的代码会导致在 DumpDir 中创建一个空白文件。
我已经尝试让 python 打印命令,以便我可以通过 CMD 提示符使用以下命令对其进行测试:
print(subprocess.list2cmdline(params));
如果我将输出粘贴到 CMD 提示符并执行它,一切正常。
有任何想法吗?
我是 Python 新手,所以我确信答案很简单,但我尝试了很多变体来让它工作,我就是想不通。