def count(filename, what):
    strategy = {'lines': lambda x: bool(x.strip()), 'words': lambda x: len(
        x.split()), 'chars': len}
strat = strategy[what]
with open(filename) as f:
    return sum(strat(line) for line in f)
Предпочтительный способ подсчета строк, символов и слов из файла в целом в Python