1

ここに私が持っているものがあります:

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がサブプロセスに何も注入していなかったと仮定しています。

4

2 に答える 2

1

これを投稿して別の形式で読んだ後、プロセスを待っていないことに気付きました。

解決策は次のとおりです。

file = open("upload.pass")
process = subprocess.Popen([..., "--passin"], stdin=file)
process.wait()

それは完璧に機能します。私は待っていなかったので、すでに終了していたので、Pythonがサブプロセスに何も注入していなかったと仮定しています。

于 2012-03-28T19:47:32.490 に答える
0

認証やエラーなどを処理するコードを追加していることに気付いた場合は、gaedriverをappcfgを使用するライブラリとして検討することもできます: http ://code.google.com/p/gaedriver/

于 2012-03-28T21:42:02.533 に答える