Re: [討論] 過濾資料(多重條件)
我的想法是,對於讀取時間而言,
IO時間絕對比computing長很多,
基於這個想法,我認為你應該在每次執行程式的時候就讀入所有檔案
或是建好所有檔案的index,來避免下次讀取時又要重新搜尋檔案的時間
舉個例子來說,譬如我要在檔案群中搜尋patternA這樣的資訊
解決這樣的問題可以有幾種做法,
1.打開所有的檔案,一筆一筆檢驗
2.將所有檔案資料讀入程式,在程式中檢驗
3....
我們比較前兩種,對於單次執行時間是相同的,
同樣讀取檔案同樣做搜尋 但是當你要在同一群資料中搜尋不同資訊時
第二的方法的長處就顯現出來,它可以省下每次你要讀取檔案做IO的時間
當然還有其他做index的方法,不過我不清楚你的程式內容沒辦法分享我自己的意見
但是我想表達的是,當你期望每次讀取都去硬碟搬東西,
又期望你的程式執行時間短,是無法做到的
--
小小看法
※ 引述《josefy (醉落~最弱)》之銘言:
: 抱歉又來打擾了! 斗膽一問
: 除了.findall以及grep之外 是否有其他更有效率的搜尋方式
: 目前我寫的程式常常得搜尋約一百多個文字檔 效率真的很差
: 抓出一個檔案中 欲取的數據 得要一秒多
: 有時候要抓上千筆 ... 那會等很久的 . . .
: 不知道是否有方式可以提升效能?
: 如果能夠自己製作一個比較有效率的subroutine也可考慮
: 但不太確定這樣子的話要怎麼寫
: 感謝您的閱讀
: ※ 引述《suzuke (suzuke)》之銘言:
: : grep本身不是python的指令
: : 而是在linux shell底下的一個程式
: : 因為是利用python的command模組來調用shell裡的指令來用
: : 所以當然在windows底下沒辦法使用
: : 不過我印象中python好像也有類似grep的模組(不太確定~)
: : ^^^^^^^^^^^^^^^^基本上這邊給的就是一個字串
: : 所以你應該去讀一下有關python字串的使用方法
: : 舉例來說, 如果你有五個字串分別是dir_A, dir_B, dir_C, dir_D, dir_E
: : 那要怎麼用變數來簡化寫法勒
: : 就是
: : a = [ 'A', 'B', 'C', 'D', 'E']
: : for name in a:
: : print "dir_" + name
: : 這邊的"dir_a"是一個字串, 可以和另一個字串(由變數name取代)相加成為一個新的字串
: : 如果只是很簡單的字串可以這樣用
: : 不過基本上還是建議也把正規表示法學好, 會有很大的幫助
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.166.90
推
08/03 13:51, , 1F
08/03 13:51, 1F
推
08/03 15:00, , 2F
08/03 15:00, 2F
→
08/03 15:30, , 3F
08/03 15:30, 3F
推
08/03 20:21, , 4F
08/03 20:21, 4F
推
08/03 20:43, , 5F
08/03 20:43, 5F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章
-9
18