Re: 在python裡grep某個檔案的其中一行
※ 引述《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
05/13 17:52, 1F
→
05/13 17:53, , 2F
05/13 17:53, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章