Вот что у меня есть:
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 ничего не вводил в подпроцесс, потому что я уже вышел.