Подпроцесс Python, вводят дочерний процесс

Я сделал программу, которая проверяет секретный ключ. и другая программа, которая должна найти секретный ключ. Мне удалось открыть дочерний процесс во второй программе, но не смог отправить его на вход. Вот программа, которая проверяет секретный ключ, secret_key.py :

 SECRET_KEY = "hi" current_key = 0 while not current_key == "exit": wrong_key = False current_key = raw_input("Enter the key or enter 'exit' to exit.\n") for i in range(len(current_key)): if i < len(SECRET_KEY): if not current_key[i] == SECRET_KEY[i]: wrong_key = True else: wrong_key = True if not wrong_key: print("the key is right!\n") current_key = "exit" raw_input("Press ENTER to exit\n") exit() 

Теперь я сделал файл .sh, чтобы иметь возможность запускать его в новом терминале в качестве дочернего процесса, program.sh :

  • ловить stdout в реальном времени из подпроцесса
  • Как создать скрипт python, который может выйти из системы, завершить работу и перезагрузить компьютер?
  • запись большого количества данных в stdin
  • печать stdout в реальном времени из подпроцесса, который требует stdin
  • Украсить \ делегировать объект File для добавления функциональности
  • В Python 2.5 как убить подпроцесс?
  •  #! /bin/bash python Desktop/school/secret_key.py 

    И вот где я застрял, find_key.py :

     import subprocess program = subprocess.Popen("./program.sh") 

    теперь я не мог найти способ отправить secret_key.py те secret_key.py он запрашивает.

    В любом случае я могу отправить строковый ввод в secret_key.py из find_key.py ?

  • Matplotlib соединяет точки рассеивания с линией - Python
  • Как я могу улучшить обнаружение лапы?
  • Как * на самом деле * читать данные CSV в TensorFlow?
  • Как предупредить о стирании класса (имени)
  • Система Django rest для сериализации многих и многих полей
  • Ошибка при использовании MySQL Connector / Python с Django 1.11
  • One Solution collect form web for “Подпроцесс Python, вводят дочерний процесс”

    Чтобы отправлять и считывать выходные данные из процесса, открытого через Popen, вы можете читать и записывать в процесс, используя поля « stdin и « stdout процесса. Вам нужно сказать Popen чтобы настроить каналы, хотя:

     process = subprocess.Popen([SPIM_BIN] + extra_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE) pin = process.stdin pout = process.stdout 

    И теперь вы можете писать для pin и чтения с pout как и с любым старым файловым дескриптором.

    Обратите внимание, что это, вероятно, не позволит вам подключиться к gnome-terminal . Но это позволит вам подключиться к program.sh .

    Python - лучший язык программирования в мире.