Подпроцесс 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 :

 #! /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 ?

  • Ubuntu с запуском `pip install` дает ошибку 'Невозможно построить следующие необходимые пакеты: * freetype'
  • Python ImportError не может импортировать urandom. Обновление Ubuntu 12.04
  • Python не работает: ImportError: нет модуля с именем 'logging'
  • Как играть в mp3 с URL-адреса
  • Python3 CGI HTTPS-сервер выходит из строя в Unix
  • Как заставить tkinter работать с установкой Ubuntu по умолчанию Python 2.7?
  • Нет модуля с именем «virtualenvwrapper»
  • Нужна помощь при запуске приложения Python в качестве службы в Ubuntu с помощью Upstart
  • 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 .

    Interesting Posts

    Компиляция Python 2.6.6 и необходимость в внешних пакетах wxPython, setuptools и т. Д. В Ubuntu

    Соединение SQL или функция слияния R () в NumPy?

    Открытая онлайн-версия IDE

    Быстрый расчет логарифма

    Специфические зависимости платформы Setuptools

    Как получить список всех возможных комбинаций цен на товары для достижения целевой стоимости?

    Простой пакет Hello World setuptools и установка его с помощью pip

    Рекурсивная подпапка поиска и возврата файлов в списке python

    ошибка импорта в сельдерее

    Argmax каждой строки или столбца в scipy разреженной матрице

    Имитация нажатий клавиш в python с использованием pywin32

    Преобразование Z-балла (Z-значение, стандартная оценка) в p-значение для нормального распределения в Python

    Как создать основные и малые сетки с различными Linestyles в Python

    Оптимизация запросов к базе данных в структуре Django REST

    Преобразование файла в словарь ключей / значений

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