Для полноты (хотя в этом случае, вероятно, лучше использовать регулярное выражение):
>>> from string import punctuation
>>> with open('foreword.rst', 'rt') as infile:
... for line in infile:
... for x in line.split():
... x = x.strip(punctuation)
... if len(x) > 5:
... print x
Если вы действительно имеете в виду «фильтр», то есть каждое слово должно быть напечатано несколько раз. Если вам просто нужны слова по одному разу, я бы сделал это:
>>> from string import punctuation
>>> result = set()
>>> with open('foreword.rst', 'rt') as infile:
... for line in infile:
... for x in line.split():
... x = x.strip(punctuation)
... if len(x) > 5:
... if x not in result:
... result.add(x)
... print x