2012-08-31 64 views
-1

在文本文件中的模式我有一個文本文件,說發現在python

1: 0,0,0,122 
2: 2,0,3,333 
3: 0,0,0,23 

等。 我需要在文本文件 中找到「0,0,0」模式,並打印除包含給定模式的行之外的所有行。 請誰能告訴我代碼爲此python

+0

我可以幫助你,但我不會爲你解決這個問題。你有什麼嘗試? –

回答

4

一個強大的方法是這樣的:

import re 
pattern = re.compile(r'0\s*,0\s*,0\s*') 
with open(filename) as f: 
    for line in f: 
      if pattern.search(line): 
        print line 

這樣,如果你有一個有一定空間,它跳過(如「0,0,0」,而不是「0,0,0線「)。

但如果你是肯定的就沒有這樣的事情,或者如果你想完全匹配「0,0,0」 [無空格],比你能避免使用re模塊只使用in運營商:

with open(filename) as f: 
    for line in f: 
      if '0,0,0' not in line: 
        print line 
0
for line in textfile.split('\n'): 
    if '0,0,0' not in line: 
     print line 
+0

這假設整個文件在內存中(在'textfile'中)。使用迭代器方法'for line in file'更高效和優雅。 –

0

使用context manager打開文件。逐行遍歷文件。如果您的圖案沒有出現在生產線上,請打印此行:

filename = 'textfile.txt' 
pattern = '0,0,0' 

with open(filename) as f: 
    for line in f: 
     if pattern not in line: 
      print line 

未經測試,但應該有效。