Я пытаюсь отправить cmd
множество команд в соответствии с ответами, которые он мне отправил.отправка многих команд в cmd
Я получаю сообщение об ошибке времени выполнения:
ValueError: I/O operation on closed file
Когда я бегу что-то вроде этого:
import subprocess
process = subprocess.Popen("cmd.exe", stdout=subprocess.PIPE,stdin=subprocess.PIPE)
answer = process.communicate(input="some command\n" + '\n')[0]
"""
choosing another command according to answer
"""
print process.communicate(input=another_command + '\n')[0]
process.kill()
Любая идея о том, как решить эту проблему?
Благодарим за помощь!
Вы могли бы предоставить изображение большего размера? Вы отправляете свои команды после 'process.kill()'? Если нет, можете ли вы привести пример кода (с реальными командами вместо '' некоторая команда '')? Есть вероятность, что команда, которую вы пытаетесь запустить в cmd, завершает работу вашей оболочки. – woockashek
Даже без 'process.kill()' и обе команды как '' ipconfig \ n "'. Первая команда работает, а вторая дает мне Runtime Error –
Выполнение команды, вероятно, отправляет обратный код обратно, закрывая объект Popen. Например, если вы выполните ipconfig, тогда выполните 'process.poll()' вы, вероятно, увидите код возврата 0. – sytech