2011-08-17 130 views
0

我有我想從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需要是原始輸入。

回答

5

使用subprocess模塊

import subprocess 
subprocess.call(cmd) 

如果你正在運行一個shell命令添加shell=True

subprocess.call(cmd, shell=True) 
+0

用cmd = r「」「複製c:\ x \ fails.txt c:\ x \ copiedfails.txt」「」沒有工作.... – Merlin

+1

windows上的'copy'是一個shell命令,而不是可執行文件。嘗試'subprocess.call(cmd,shell = True)' – orip

0

您應該保存在MySQL的本地配置文件中的密碼的用戶。(在Unix中它的〜/ .my.cnf),或者你可以在命令行上輸入--password=MYPASSWORD

無論採用哪種方式,密碼都會被大量用戶看到。在.my.cnf的情況下,任何有讀權限的人都可以看到它。在第二種情況下,除了那些可以讀取腳本的人之外,任何可以在系統上獲得進程列表的人都可以看到它。

+0

我可以創建一個用戶,只能轉儲數據庫/ – Merlin