Мне нравится мышление Пола Хэнкина, но я бы сделал это по-другому:
from itertools import ifilter, ifilterfalse, imap
with open(r'c:\temp\testfile.txt', 'rb') as f:
s1 = ifilterfalse(str.isspace, f)
s2 = ifilter(lambda x: not x.startswith('#'), s1)
s3 = imap(str.rstrip, s2)
print "\n".join(s3)
Я бы, вероятно, сделал бы это только так, вместо того, чтобы использовать некоторые из более очевидных подходов, предложенных здесь, если бы меня беспокоило использование памяти. И я мог бы определить iscomment
функцию для устранения лямбды.