Я немного не уверен, почему вы захотите это сделать.Могу ли я предложить полностью питонический подход с использованием потоков и queues :
import threading
from queue import Queue
import time
def worker(q):
"""thread worker function"""
running = True
while running:
message = q.get()
print('Worker received message: {}'.format(message))
if message == 'KILL':
running = False
print('Worker completed')
if __name__ == '__main__':
q = Queue()
worker = threading.Thread(target=worker, args=(q,))
worker.start()
running = True
while running:
user_input = input('Input some data: ')
q.put(user_input)
if user_input == 'KILL':
running = False
time.sleep(0.5)
print('Program terminated')
Теперь у вас есть возможность отправлять команды на другой скрипт Python из консоли.Работник может делать все, что вы хотите сейчас.Для более подробного примера см. этот пост
В качестве альтернативы, если это неприемлемо, вы пытаетесь сделать данные «ТРУБЫ» из командной строки в обоих направлениях.Посмотрите на этот пост , где они делают:
proc = subprocess.Popen(['some_cmd', '--command_line_parameters'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = proc.communicate()