【发布时间】:2014-06-08 06:20:26
【问题描述】:
多年来,我一直在使用 Windows 编写脚本,最近几周才开始将 python 作为替代方案。我正在尝试编写一个本机 python 脚本来使用 mysqldump 备份一个 mysql 数据库。我通常使用命令行管道输出 > 没有问题。
我看到很多关于 subprocess.popen 和 shell=True 的答案,同样我看到很多声明说我应该避免使用 shell=True
所以我试图让以下代码将我的标准输出重定向到一个文件,但都没有成功
sys.stdout=open("mysqldump.txt",'w')
print("testing line1")
subprocess.check_output(["mysqldump", "-u", "usernmae", "-ppassword", "-h", "dbserver_name", database_name])
如果我注释掉 sys.sdout 行,我会看到 sqldump 输出到我的屏幕,所以我知道这部分的语法是正确的。我添加了打印语句,可以看到它被写入文件 mysqldump.txt。但是当完全运行时,不会转储到屏幕或文件中
有什么想法吗?我试图避免使用 shell 解决方案
【问题讨论】:
标签: python subprocess mysqldump