看板 Python 關於我們 聯絡資訊
網站上的小程式 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