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