我正在编写一个Python函数,需要使用bash将MySQL数据库导出为.sql文件。我使用的是mysqldump命令。
mysqldump -u bandana -p movies > /Users/Mac/Downloads/testOutput.sql
这个命令对我的目的来说足够好用。我的问题是如何将它转换为可以从函数中运行的Python脚本。
我尝试使用os.system,但是在运行过程中需要在终端中输入密码。
def cloneDB(): os.system("mysqldump -u bandana -p movies > /Users/Tis_Me/Downloads/testOutput.sql") 输入密码:
我还尝试使用subprocesses模块,但是我对它一无所知。我只是得到了一些我不知道如何解决的错误。
def cloneDB(): subprocess.run(["mysqldump", "-u bandana", "-p movies", "> /Users/Tis_Me/Downloads/testOutput.sql"])
我想知道是否有任何额外的参数或者其他东西可以添加,以便自动输入密码,这样函数就不需要询问密码了。
期望的结果是cloneDB()函数在不需要询问密码的情况下运行。
您可以将密码直接放在命令行中,紧跟在
-p
之后您也不能将输出重定向放在参数列表中。那是shell语法,而不是命令参数。您可以使用
subprocess.run()
的stdout
选项来重定向其输出。