Python - подпроцесс, записывающий в стандартный ввод, чтобы основная программа могла читать его из стандартного ввода.

У меня есть программа на Python, которая принимает входные данные из стандартного ввода. Теперь мне нужно написать другую программу и вызвать ее как подпроцесс, чтобы каждый раз, когда я запускаю этот подпроцесс, он должен читать данные из другого текстового файла и записывать их в стандартный ввод, а затем моя основная программа считывает их из стандартного ввода и использует.

out.py:

from subprocess import Popen, PIPE, STDOUT

import os

import sys

def read():
    p = Popen(['python', 'in.py'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)

    out = p.communicate()

    print out[0]

def main():
    read()

if __name__ == "__main__":
    main()

in.py:

import sys,os

import subprocess

def main():

    f = open("ad.txt","r")

    for line in f:
        print line

if __name__ == "__main__":
    main()

В основном моя проблема здесь в том, что in.py считывает весь файл и печатает в STDOUT, что мне не нужно, и скорее он должен один раз сообщить одному персонажу. Если ad.txt выглядит так:

asdfgh

Я должен получить «a» , затем «s» , затем «d» , затем "f" .. так далее .. один за другим символом каждый раз, когда я вызываю функцию чтения, должен быть прочитан следующий символ из файла. В том-то и дело! Уф !! Пожалуйста, помогите мне, и у меня чертовски много работы! Заранее благодарим: D

5
задан jfs 30 December 2011 в 09:27
поделиться