在python中查找文本文件中的模式

时间:2012-08-31 09:18:22

标签: python python-2.7

我有一个文本文件,比如说

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

等等。 我需要在文本文件中找到“0,0,0”模式  并打印除包含给定模式的行之外的所有行。  请在 python 中告诉我代码

3 个答案:

答案 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

答案 1 :(得分:0)

for line in textfile.split('\n'):
    if '0,0,0' not in line:
        print line

答案 2 :(得分: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

未经测试,但应该有效。