對Python非常新穎。我開始寫一個PHP腳本來查找txt文件中所有出現的2個字符串,但它使用的內存太多,所以我讀Python會更好。搜索txt文件並在所有匹配項之間顯示數據
基本上是我需要做的是: - 導入txt文件 - 通過它,並將所有低於 標籤之間的數據 - 刪除任何重複 - 輸出結果
比特我」 m看起來是這樣的:
------DATA--------------------------------------------------
DATA TO SHOW
------------------------------------------------------------
當然,輸出的重要位是DATA TO SHOW部分。
任何幫助,將不勝感激:)
感謝
UPDATE -----------------------
import re
inputFile = open("small.txt", "r")
output = open("result.txt", "w")
searchStart = "----- ASSERT --------------------------------------------------------------------------------"
searchEnd = "---------------------------------------------------------------------------------------------"
match = re.findall('^----- ASSERT --------------------------------------------------------------------------------\n(.*?)---------------------------------------------------------------------------------------------', inputFile.read(), re.MULTILINE)
print match,
任何想法如何讓它顯示所有的行,直到它達到searchEnd標記?示例數據:
----- ASSERT --------------------------------------------------------------------------------
MORE
INFO
THAT
I
NEED
TO
GET
FROM
THE
FILE
---------------------------------------------------------------------------------------------
你能給什麼將是這些標籤之間的樣本。它會大大影響爲它編寫的代碼嗎? – 2014-10-09 16:14:25
' - + DATA - + \ n。*?\ n - + \ n'應該這樣做 – vks 2014-10-09 16:16:36
問題不是您使用的語言,而是您如何處理文件。要做到你想要的而不消耗太多內存,你必須逐行讀取你的文件,當到達「開始標記」時,開始記錄數據。在結束標記處停止記錄。如果將整個文件加載到一個變量中,並且使用不良模式處理它,則正常情況下會遇到內存問題。 – 2014-10-09 16:45:18