2012-06-27 32 views
0

我試圖打開文本文件並查找字符串Num_row_lables。如果Num_row_labels的值大於或等於10,則打印文件的名稱。Python:讀取文本文件的內容並查找匹配/條件

在下面的示例中,我的文本文件test.mrk的一些文本格式如下:P.s.,我的文本文件沒有Num_row_labels >= 10。它總是有「equal to」。

Format= { Window_Type="Tabular", Tabular= { Num_row_labels=10 } } 

所以我創建了一個變量teststring持有我定定地看着格局。 然後我打開文件。

然後使用re,我得到Num_row_labels=10在我的變量稱爲匹配。 在匹配時使用group(),我提取了我想要的閾值數,並使用int()轉換爲string to int

我的目的是文本文件,文件的名字一起讀find/print爲Num_row_labels的值,如果文本文件有Num_row_labels = 10或#大於10

這裏是我的測試代碼:

import os 
import os.path 
import re 

teststring = """Format= { Window_Type="Tabular", Tabular= { Num_row_labels=10 } }""" 
fname = "E:\MyUsers\ssbc\test.mrk" 
fo = open(fname, "r") 
match = re.search('Num_row_labels=(\d+)', teststring) 
tnum = int(match.group(1)) 


if(tnum>=10): 
     print(fname) 

如何確保我在打開的文件的內容中搜索匹配並檢查tnum> = 10的條件?我的測試代碼只會在最後4行的基礎上打印文件名。我想確保搜索遍及我的文本文件的內容。

回答

4

所以你想做的事就是讀出整個文件作爲一個字符串,並搜索模式該字符串

with open(fname, "r") as fo: 
    content_as_string = fo.read() 
    match = re.search('Num_row_labels=(\d+)', content_as_string) 
    # do want you want to the matchings 
+0

感謝很多快速的解答。有效。 :) – Nemo

+0

@Nemo很高興幫助:) – xvatar

相關問題