我一直在使用Windows腳本多年,並且只開始看python作爲過去幾周的替代方案。我正在嘗試編寫一個本地python腳本來用mysqldump備份一個mysql數據庫。我通常使用命令行來管理輸出>而沒有問題。使用subprocess.call與mysqldump
我看到subprocess.popen和殼=真多的答案,同樣我看到許多發言說,我應該避免殼=真
所以我試圖讓下面的代碼,以我的標準輸出重定向到一個文件,均無功而返
sys.stdout=open("mysqldump.txt",'w')
print("testing line1")
subprocess.check_output(["mysqldump", "-u", "usernmae", "-ppassword", "-h", "dbserver_name", database_name])
如果我註釋掉sys.sdout行我看到sqldump輸出到我的屏幕,所以我知道我的語法正確,此部分。我添加了print語句,並可以看到它被寫入文件mysqldump.txt。但是,當完整運行沒有轉儲到屏幕或文件
任何想法?我試圖避免使用shell解決方案
謝謝這工作一個治療:-) – Rob
什麼是'dbserver_name'?它是本地主機嗎? – OPV
@OPV推測它是db運行的服務器的主機名。 'mysqldump'的參數是從問題中複製而來的,你必須詢問OP(或者查閱[文檔](https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html# mysqldump-syntax))關於它們的含義。 – user4815162342