看板 Python 關於我們 聯絡資訊
※ 引述《suss ()》之銘言: : 我現在有一個txt檔案 假設叫tmb.txt : 大概像這樣 : def pion_gjets : status: closed : Total events: 535 : 當然稍微更長一點 : 但總之 我需要535這個數字 接在Total events後面的 : 我試著用 Line=os.system("cat tmb.txt | grep Total") : 意圖再把Line split就可以拿到那個數字 : 問題是 這樣做的結果 Line永遠只傳回0 : 然後會把grep的結果 Total events: 535 印在螢幕上 : 我現在用非常笨的方法 readlines : 然後找出有Total這行 再找到535這個數字 : 請問各位大大能否提供一些比較聰明的方法? : 我更想知道的是像用os.system做ls, grep等等 : 怎麼能拿回結果 而不是回傳值0? : 非常感謝^^ os.system回傳的是程式terminate時的回傳值 正常結束都是0 要拿stdout可以用popen3 但何不用readlines搭配re模組 f = open("tmb.txt", "r") for line in f.readlines(): m = re.search("Total events: (\d*)", line) if m: print m.group(1) 應該就會找到你要的吧? -- http://nigel.twbbs.org -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 76.95.86.77 ※ 編輯: liangjr 來自: 76.95.86.77 (05/13 16:11)
suss:我後來發現可以用popen2 但執行速度似乎慢了些 是錯覺嗎? 05/13 17:52
suss:感謝回應 因為是python新手 所以很多模組還不太懂...orz 05/13 17:53