以下是我有:如何使用--passin和subprocess.Popen自動化Google App Engine upload_data?
process = subprocess.Popen(["cmd.exe",
"/c"
"appcfg.py",
"upload_data",
"--config_file=..\\bulkloader.yaml",
"--filename=" + generateXmlFilename(kind),
"--kind=" + kind,
"--url=" + getTargetGaeUrl(),
"--application=" + getTargetGaeApplication(),
"[email protected]",
"../"])
可正常工作,但是,當我介紹「--passin」我似乎無法得到它變成正確的標準輸入。我曾嘗試以下:
file = open("upload.pass")
process = subprocess.Popen([..., "--passin"], stdin=file)
以及
process.stdin.write("myPassword")
,我甚至試過(在黑暗中拍攝)
process = subprocess.Popen([..., "--passin", "< upload.pass"])
你可能已經注意到我想在Windows 7機器上執行此操作。
這可能嗎?
更新:
張貼這一點,並以不同的格式看完之後,我意識到,我並沒有等待的過程。
解決的辦法是:
file = open("upload.pass")
process = subprocess.Popen([..., "--passin"], stdin=file)
process.wait()
完美的作品。我假設,因爲我沒有等待python沒有注入任何東西到子進程中,因爲我已經退出了。
你應該張貼您的更新作爲一個答案,你自己問題,所以其他人可以從你的來之不易的智慧中受益。 –