我使用Python來自動化SVN提交,並且我想將SVN命令的輸出寫入日誌文件。我擁有的代碼可以讓SVN運行,但問題是,在成功提交時,subprocess
調用不會爲我的日誌返回任何輸出。當使用subprocess.Popen(),stderr和stdout沒有輸出
當我手動運行SVN時,通過比較,我得到的輸出顯示了命令的進度並顯示哪些文件正在提交。這就是我想要的日誌文件。 SVN將數據輸出到緩衝區而不是stdout或stderr?我如何爲我的日誌捕獲這些數據?
下面是我使用的代碼:
cmd = "svn commit --non-interactive --no-auth-cache -m 'Automatic commit' ./"
process = subprocess.Popen(cmd,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
result = process.wait()
# Output
out = process.stdout.read()
err = process.stderr.read()
當我運行此代碼,並提交成功,out
和err
變量都是空的。
你如何發送的登錄憑據這樣做呢?我試圖相同,並不知道如何發送用戶名和密碼相同 –