我有我想從windows shell 或命令提示符運行的mysql轉儲命令。我已經使用了它的外殼。如何從python的命令提示符執行腳本
d= 'BkSql_'+datetime.datetime.now().strftime("%Y-%m-%d")+".sql"
fn = dn+d
cmd="""mysqldump -u hapopdy -p > %s""" %fn
print cmd
編輯::::::: 的-p需要是原始輸入。
我有我想從windows shell 或命令提示符運行的mysql轉儲命令。我已經使用了它的外殼。如何從python的命令提示符執行腳本
d= 'BkSql_'+datetime.datetime.now().strftime("%Y-%m-%d")+".sql"
fn = dn+d
cmd="""mysqldump -u hapopdy -p > %s""" %fn
print cmd
編輯::::::: 的-p需要是原始輸入。
使用subprocess模塊
import subprocess
subprocess.call(cmd)
如果你正在運行一個shell命令添加shell=True
subprocess.call(cmd, shell=True)
您應該保存在MySQL的本地配置文件中的密碼的用戶。(在Unix中它的〜/ .my.cnf),或者你可以在命令行上輸入--password=MYPASSWORD
。
無論採用哪種方式,密碼都會被大量用戶看到。在.my.cnf的情況下,任何有讀權限的人都可以看到它。在第二種情況下,除了那些可以讀取腳本的人之外,任何可以在系統上獲得進程列表的人都可以看到它。
我可以創建一個用戶,只能轉儲數據庫/ – Merlin
用cmd = r「」「複製c:\ x \ fails.txt c:\ x \ copiedfails.txt」「」沒有工作.... – Merlin
windows上的'copy'是一個shell命令,而不是可執行文件。嘗試'subprocess.call(cmd,shell = True)' – orip