Uruchamianie interaktywnego polecenia z poziomu Pythona

Mam skrypt, który chcę uruchomić z poziomu pythona (2.6.5), zgodnie z poniższą logiką:

Pytaj użytkownika o hasło. Wygląda („Wprowadź hasło:”) (* Uwaga: dane wejściowe nie są wyświetlane na ekranie)Wyprowadzaj nieistotne informacjeMonituj użytkownika o odpowiedź („Blah Blah filename.txt blah blah (T / N) ?:”)

Ostatnia linia zachęty zawiera tekst, który muszę przeanalizować (filename.txt). Udzielona odpowiedź nie ma znaczenia (program może się tutaj zamknąć bez podania go, o ile mogę przeanalizować linię)

Moje wymagania sąnieco podobny doZawijanie interaktywnej aplikacji wiersza poleceń w skrypcie Pythona, ale odpowiedzi wydają się nieco mylące, a moje wciąż się zawieszają, nawet jeśli OP wspomina, że ​​nie dla niego.

Rozglądając się, doszedłem do wniosku, żesubprocess to najlepszy sposób na zrobienie tego, ale mam kilka problemów. Oto moja linia Popen:

p = subprocess.Popen("cmd", shell=True, stdout=subprocess.PIPE, 
stderr=subprocess.STDOUT, stdin=subprocess.PIPE)

Kiedy dzwonięread() lubreadline() nastdout, monit jest drukarką na ekranie i zawiesza się.

Jeśli zadzwonięwrite("password\n") dlastdin, monit jest zapisywany na ekranie i zawiesza się. Tekst wwrite() nie jest zapisany (nie przesuwa kursora o nową linię).

Jeśli zadzwonięp.communicate("password\n"), to samo zachowanie co write ()

Szukałem tutaj kilku pomysłów na najlepszy sposób wprowadzaniastdin i być może, jak przeanalizować ostatnią linię na wyjściu, jeśli czujesz się hojnie, chociaż prawdopodobnie mógłbym to zorientować.

questionAnswers(2)

yourAnswerToTheQuestion