向嵌入式应用程序发送输入

嗨,我是一名新手程序员,试图更好地定义一个爱好项目
我在想.
我想做的就是参加程序并嵌入或放置
在Python-Run GUI中,使用GUI只是捕获和发送输入
到该应用程序,并显示OUPUT.
特别是我想使用python模块,例如wxpython,pygame或
拼图构建UI,捕获密钥按下,然后将字符串发送到
该程序,互动小说解释器;原因
是解释器本身没有能力
识别键盘上的某些键按.我以为写作
中间层而不是全新的口译员会更容易
我的技能水平的人.
口译员将其输出发送给Python GUI.然后gui
将尽可能轻/半透明,只接受输入,
将其发送给解释器,并像您一样显示输出
只是自行运行口译员.
由于我真的不知道所涉及的问题,我希望有人可以
将我指向正确的方向.与人"框架"程序
诸如WXPYTHON或PYGAME之类的东西,并使用框架捕获和
传递输入,接收并显示输出?
谢谢,乔治

# 回答1


在7月12日,09:08,乔治·奥利弗(George Oliver) 您的解释器提供哪个接口?只是命令行或
您可以通过其他方法访问吗? http://sourceforge.net/projects/peexpect/可能会帮助您
问候,uwe
# 回答2


乌韦·施密特(Uwe Schmitt)写道:
您的解释器提供哪个接口?只是命令行或
您可以通过其他方法访问吗? http://sourceforge.net/projects/peexpect/可能会帮助您
尽管Pexpect看起来更高级和完整,但您可能想参加
看看Popen*模块.它使您能够轻松地运行子过程,喂他
关于stdin的数据,从stdout/stderr检索输出,然后等待其
完成. http://docs.python.org/lib/module-popen2.html
- -
mefyl
Gostai -http://www.gostai.com的研发工程师
要了解递归,您必须首先了解递归.
# 回答3


Mefyl写道:
您的解释器提供哪个接口?只需命令线或您可以通过其他方法访问?
尽管Pexpect看起来更高级和完整,但您可能想参加
看看Popen*模块.它使您能够轻松地运行子过程,喂他
关于stdin的数据,从stdout/stderr检索输出,然后等待其
完成. http://docs.python.org/lib/module-popen2.html
我相信子进程模块是现在使用的建议模块.
-MATT
# 回答4


Matthew Fitzgibbons写道:
尽管Pexpect看起来更高级和完整,但您可能希望在Popen*模块上进行Totake Alook.它使您能够轻松运行子过程,在stdin上喂食himdata,从stdout/stderr检索输出,然后等待itscompletion.http://docs.pypython.org/lib/module-popen2.html
我相信子进程模块我 S现在使用的建议模块.
- 马特
-http://mail.python.org/mailman/listinfo/python-list
=================================
嗯!
#
打印" Popen3 Run"
###########来自现有Python文档:
从popen2导入 *
r,w,e = popen3('dmesg | grep hda')
打印R.Read()
打印"子过程运行"
###########来自现有Python文档:
#" ...用子进程模块替换旧功能..."
从子过程导入 *
p1 = popen([" dmesg"],stdout = pipe)
p2 = popen([" grep"," hda"],stdin = p1.stdout,stdout = pipe)
输出= p2.Communate()[0]
#documentation退出
打印p2.Communate()
#
"""为什么孩子们坚持使事情变得更复杂
比必要?如果是python的吹牛权利
是一个人写的代码更少,我
必须说"废话",只需计算可打印的字符即可.
少写的是改变这样的事情:
尝试:
f = open(arg,'r')
除了ioerror:
打印"无法打开",arg
别的:
打印arg," has",len(f.readlines())," lines"
f.close()
###我必须猜测要为什么类型错误,我需要另一个类型错误
模块解码实际出了什么问题.
为此:
if(fd = os.open(文件名,'o_rdrw | o_binary,0666)== -1)
...处理它
如果fd.err.type ==此#catagory
如果fd.err ==此#pexific
做这个
等等
##只是为了看看出了什么问题吗?打印fd.err.type,fd.err
else:#要匹配上面
继续处理
###错误报告实际上有用
谁说FD不能简单地互编或指向错误块
取决于是否有效?奖金是,如果有
没有陷阱,它将无论如何都会停止第一次FD用作文件编号.
坠机通常实际上指向正确的位置. :)
除此之外:子进程似乎有问题:
"""
#当我运行以上时,我会得到:
==============
py:py test.py
Popen3运行
IDE0:BM-DMA在0x1400-0x1407,BIOS设置:HDA:DMA,HDB:PIO
HDA:ST9160821A,ATA磁盘驱动器
HDA:附带的IDE驱动器.
HDA:主机保护区= 1
HDA:不能使用LBA48-容量重置为312581808至268435456
HDA:268435456扇区(137439 MB)W/8192KIB CACHE,CHS = 19457/255/63,
UDMA(100)
HDA:HDA1 HDA2 HDA3
子过程运行
('', 没有任何)
PY:>
=============
注意子过程产生意外的答案.可能需要更好
文档和较少的键入. :)
" py:"是脚本更改为dir python并设置路径的结果
PY是Python的副本,重命名为减少打字. (UNIX vs Microsoft)
注意:只需额外的努力,管道仅适用于命令
就像构建以接受重定向的I/O所建造的GREP一样.我还没有得到它
使用GUI类型.这些需要特殊的东西植入
编译时间是因为他们不使用甚至需要命令行
界面.通常,它们是"点击"或远足. Guis是
视觉上更具吸引力,但在生产世界中表现不佳.
steve nodeby@@hughes.net

标签: python

添加新评论