Я хочу вызвать редактор в скрипте Python для запроса ввода от пользователя, так же, как crontab e
или git commit
делает.
Вот фрагмент из того, что я запускаю до сих пор. (В будущем я мог бы использовать $ EDITOR вместо vim, чтобы люди могли настраивать их по своему вкусу.)
tmp_file = '/tmp/up.'+''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(6))
edit_call = [ "vim",tmp_file]
edit = subprocess.Popen(edit_call,stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True )
Моя проблема в том, что, используя Popen, кажется, что мой ввод-вывод со скриптом python не может перейти в рабочую копию vim, и я не могу найти способ просто передать ввод-вывод в vim , Я получаю следующую ошибку.
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal
Какой лучший способ вызвать программу CLI из python, передать управление ей, а затем передать ее обратно, как только закончите с ней?