python - 如何使用 --passin 和 subprocess.Popen 自动化 Google App Engine upload_data?

标签 python google-app-engine process stdin bulkloader

这是我所拥有的:

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 没有向子进程注入(inject)任何东西,因为我已经退出了。

最佳答案

发布此内容并以不同的格式阅读后,我意识到我并没有等待这个过程。

解决办法是:

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

效果很好。我假设因为我没有等待 python 没有向子进程注入(inject)任何东西,因为我已经退出了。

关于python - 如何使用 --passin 和 subprocess.Popen 自动化 Google App Engine upload_data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7141083/

相关文章:

python - 只需输入文件夹名称即可运行 python 模块

python - 在 python 中将变量设置为 `None` 是否更节省内存?

python - 要在 Google App Engine 上托管静态 (HTML) 网站,app.yaml 文件中应该包含什么?

java - 在 GAE/J 中避免 DeadlineExceededException 的技术?

c# - 应用程序崩溃后发生的 WPF 事件

javascript - 如何并发运行mongo脚本

python - 用python2.7阅读docx

python - Django:如何获取对称多对多关系中引用的对象?

java - GAE : Getting runtime exception when running the (java) guestbook tutorial (working fine locally)

c# - 如何监控启动 "dllhost.exe"的进程?