我有一个从stdin输入的Python程序。现在,我必须编写另一个程序并将其调用为子进程,以便每次启动此子进程时,它都应从另一个文本文件中读取数据并将其写入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
stdin
。为什么不使用管道呢? - Some programmer dude