我已经使用Windows脚本编程多年,最近几周才开始考虑Python作为替代方法。我试图编写一个本地的Python脚本来备份MySQL数据库,并使用mysqldump进行操作。通常情况下,我使用命令行将输出重定向到文件而没有问题。
我看到很多答案都是用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.stdout那一行,我会看到sqldump输出到我的屏幕上,所以我知道这部分的语法是正确的。我添加了print语句并且可以看到它被写入了文件mysqldump.txt。但是当全部运行时没有输出到屏幕或文件中。
有什么想法吗?我正在尝试避免使用shell解决方案。
dbserver_name
是什么?它是本地主机吗? - OPVmysqldump
的参数是从问题中复制的,您需要询问 OP(或查阅文档)了解它们的含义。 - user4815162342