作者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://www.ptt.cc/bbs/Python/M.1423663317.A.CB5.html
→ walelile: 應該就是空字串而已 02/11 22:24
→ ccwang002: 第一個 [p, '', ''] = [Popen, out, err] 自行設計的 02/11 22:48
→ ccwang002: 後面那個 p[0] 是 proc[0] 其實是代表 Popen object 02/11 22:48
→ ccwang002: 所以 cmd[0].xxx 應該改成 cmd.communicate() 拿輸出 02/11 22:49
→ gn00618777: for x in proc 我想說應該是要 proc[]來表示 02/11 23:12
→ gn00618777: 怎會是 p[] , 這樣我大概瞭了,謝謝。 02/11 23:13