ここに私が持っているものがあります:
process = subprocess.Popen(["cmd.exe",
"/c"
"appcfg.py",
"upload_data",
"--config_file=..\\bulkloader.yaml",
"--filename=" + generateXmlFilename(kind),
"--kind=" + kind,
"--url=" + getTargetGaeUrl(),
"--application=" + getTargetGaeApplication(),
"--email=example@gmail.com",
"../"])
これは期待どおりに機能しますが、「--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がサブプロセスに何も注入していなかったと仮定しています。