Re: 在python裡grep某個檔案的其中一行

看板Python作者 (aaa)時間17年前 (2008/05/13 16:07), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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)

05/13 17:52, , 1F
我後來發現可以用popen2 但執行速度似乎慢了些 是錯覺嗎?
05/13 17:52, 1F

05/13 17:53, , 2F
感謝回應 因為是python新手 所以很多模組還不太懂...orz
05/13 17:53, 2F
文章代碼(AID): #18AKm-Y2 (Python)
討論串 (同標題文章)
文章代碼(AID): #18AKm-Y2 (Python)