作者richtrf (嘉)
看板Python
标题Re: [问题] os.popen有办法将一个模组物件化 重复 …
时间Thu Apr 9 15:44:33 2009
很谢谢你的回应!
不过可能我表达有些错误
我举另外一个例子好了
result=os.popen("echo 'query_name' | ./phonebook").read()
phonebook是用c写的程式
每次执行他的时候 他都会开始载入背後的资料库
如果我只是单次执行的话
像是query_name= "John"
他就会回传该人名的电话号码
只不过他每次执行都需要重新载入电话号码的资料库
如果要执行多次的时候 就变成每次花时间重新载入
我的想法是有什麽办法把result变成物件
下次再执行的时候 就不用再重新载入资料库了?
感谢感谢!
※ 引述《keitheis (无)》之铭言:
: ※ 引述《richtrf (嘉)》之铭言:
: : 我有一个程式有用到os.popen
: : 主要是要去执行一个unix executable的程式
: : 举例来说
: : c=os.popen("echo '1+1' | ./counter").read()
: : 跑起来是没问题
: : 可是问题在於counter每次执行的时候
: : 都需要先花时间读入资料(只需执行一次)
: : 所以想说不知道有什麽办法解决这个困恼
: : 简省每次counter重新执行的时间
: : 感谢大家!
: 这个问题有点模糊
: 试着跑一次:
: Python 2.5.4 (r254:67917, Dec 23 2008, 14:57:27)
: In [1]: import os
: In [2]: c=os.popen("echo '1+1' | ./counter").read()
: In [3]: c
: Out[3]: '3\n'
: In [4]: type(c)
: Out[4]: <type 'str'>
: 不论 counter 干了什麽,假设最後是输出一个数
: 那麽读入该输出的 c 已经是一个 (string) 物件
: 如果程式的功能就是每次执行一次 counter
: 且 counter 的功能就是每次读入最新的资料
: 那问题大概就是怎麽把 counter 的程式最佳化了?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.123.129
1F:→ yungyuc:popen 04/09 19:41
2F:→ ibmibmibm:Subprocess 04/09 21:52
3F:→ blc:把phonebook写成server,然後开个port… (被拖走) 04/09 23:03
4F:→ blc:os.popen()就是个物件了,可以用write()输入,用read()读出。 04/09 23:07