На практике вы захотите сделать что-то с данными, и вам нужно будет проанализировать их дальше. Если ваш файл test
выглядит как
http://example.com dog
http://example.com/å%20ä%20ö/ foo
http://google.com bar
Сценарий pyparsing
удалит плохие строки примерно так:
from pyparsing import *
ParserElement.setDefaultWhitespaceChars(" \t")
EOL = LineEnd()
ascii = u''.join(unichr(x) for x in xrange(33,127))
words = Word(ascii)
good_line = Group(ZeroOrMore(words) + EOL)
bad_line = SkipTo(EOL,include=True)
blocks = good_line | bad_line.suppress()
grammar = ZeroOrMore(blocks) + StringEnd()
P = grammar.parseFile("test")
print P
Что даст в качестве вывода:
[['http://example.com', 'dog', '\n'], ['http://google.com', 'bar']]
Преимущество перед другими методами (которые отлично работают и отвечают на вопрос), так как теперь у вас есть хорошее дерево разбора для дальнейшей обработки данных. Идея состоит в том, чтобы написать грамматику , а не анализатор, для любой задачи, которая может стать более сложной, чем при первом запуске.