У меня есть программа на Python, которая принимает ввод от stdin. Теперь я должен написать другую программу и вызвать ее как подпроцесс, чтобы каждый раз, когда я запускаю этот подпроцесс, он считывал данные из другого текстового файла и записывал их в stdin, а затем моя основная программа считывает их из stdin и использует их.
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