作者gn00618777 (非常念旧)
看板Python
标题[问题] python 范例
时间Wed Feb 11 22:01:53 2015
网站上的小程式
import time
procs = []
for cmd in cmd_list:
p = Popen(cmd,stdout=PIPE,stderr=PIPE, shell=True)
procs.append([p, '', '']) ---> 不太懂加两个''的用意
all_procs = len(procs)
done_procs = 0
while done_procs < all_procs:
time.sleep(0.1)
for p in procs:
if p[0].poll(): ----->p[0] 这是代表甚麽呢?
done_procs += 1
#do something done this process
else:
out, err = p[0].communicate()
p[1] += out
p[2] += err
谢谢。
我另外练习的程式
import subprocess
cmd=subprocess.Popen(['./xx.sh'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
out,error=cmd[0].communicate() ---> 它不给过,所以p[0]不是 Popen输出字串的
templateData={ 第一个字元的意思?
'result' : out
}
return render_template('connect_server_with_ovpn.html',**templateData)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.136.158.110
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1423663317.A.CB5.html
1F:→ walelile: 应该就是空字串而已 02/11 22:24
2F:→ ccwang002: 第一个 [p, '', ''] = [Popen, out, err] 自行设计的 02/11 22:48
3F:→ ccwang002: 後面那个 p[0] 是 proc[0] 其实是代表 Popen object 02/11 22:48
4F:→ ccwang002: 所以 cmd[0].xxx 应该改成 cmd.communicate() 拿输出 02/11 22:49
5F:→ gn00618777: for x in proc 我想说应该是要 proc[]来表示 02/11 23:12
6F:→ gn00618777: 怎会是 p[] , 这样我大概了了,谢谢。 02/11 23:13