[問題] python 範例

看板Python作者 (非常念舊)時間9年前 (2015/02/11 22:01), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
網站上的小程式 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

02/11 22:24, , 1F
應該就是空字串而已
02/11 22:24, 1F

02/11 22:48, , 2F
第一個 [p, '', ''] = [Popen, out, err] 自行設計的
02/11 22:48, 2F

02/11 22:48, , 3F
後面那個 p[0] 是 proc[0] 其實是代表 Popen object
02/11 22:48, 3F

02/11 22:49, , 4F
所以 cmd[0].xxx 應該改成 cmd.communicate() 拿輸出
02/11 22:49, 4F

02/11 23:12, , 5F
for x in proc 我想說應該是要 proc[]來表示
02/11 23:12, 5F

02/11 23:13, , 6F
怎會是 p[] , 這樣我大概瞭了,謝謝。
02/11 23:13, 6F
文章代碼(AID): #1Kss3Lor (Python)