Как использовать subprocess.run, когда для завершения подпроцесса требуется Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать subprocess.run, когда для завершения подпроцесса требуется

Сообщение Anonymous »

У меня есть исполняемый файл консоли Windows, предоставленный третьей стороной. Это конвертер файлов, для которого требуется входной и выходной файл. По завершении появляется подсказка «Нажмите любую клавишу для выхода». Я пытаюсь запустить его из своей программы, используя subprocess.run. Это работает, но в консоли отображается приглашение и необработанное исключение.

Код: Выделить всё

def load_mydata(self, file):
_output = file.with_suffix(".csv")
# delete output file if it already exists
_output.unlink(missing_ok=True)
_args = 'MyDataConverter.exe input="{}" output="{}"'.format(file, _output)
print(_args)
subprocess.run(_args)
print('tada')
возвращает следующее:

Код: Выделить всё

Press any key to exit.
Unhandled Exception: System.InvalidOperationException: Cannot read keys when either application does not have a console or when console input has been redirected from a file. Try Console.Read.
at System.Console.ReadKey(Boolean intercept)
at Converter.Program.ProgramExit(TextWriter output, Int32 returnValue)
at Converter.Program.Main(String[] args)
Я пробовал это:

Код: Выделить всё

subprocess.run(_args, input=b'\n')
и

Код: Выделить всё

with open('MyResponsefile.txt', 'r') as fIn:
subprocess.run(_args, stdin=fIn)
где файл ответов содержал только символ и новую строку.
Я даже пробовал

Код: Выделить всё

try:
subprocess.run(_args)
except:
pass
но каждый раз получаю один и тот же результат.

Подробнее здесь: https://stackoverflow.com/questions/793 ... o-complete
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»