Количество строк, слов и непробельных символов в файле

Определить, сколько в текстовом файле строк, слов и непробельных символов (символы новой строки также не учитывать).

Открытый файл читается построчно. Если очередная строка считывается, то увеличивается счетчик строк.

Строки считываются вместе с символом перехода на новую строку. Чтобы от него избавиться, берется срез строки от первого символа до предпоследнего включительно (i[0:-1]).

Подсчет количества символов в строке можно было бы выполнить, используя функцию len(). Однако, так как надо посчитать только непробельные символы, приходится выполнять посимвольную проверку строки, что делается в цикле. Если символ не пробел, то он засчитывается.

Для подсчета количества слов вводится переменная-"флаг" (in_out), с помощью которой определяется, находится ли очередной символ внутри слова или он - начало нового слова. Если символ не пробел и "флаг" сообщает, что он вне слова, то увеличивается счетчик слов, и "флаг" устанавливается в значение "внутри слова". Как только встречается пробел, "флаг" сбрасывается в позицию "вне слова".

f = input('File name: ')
l = w = c = 0
for i in open(f):
    i = i[0:-1] 
    print(i)
    l += 1
 
    for j in i:
        if j != ' ':
            c += 1
 
    in_out = 0
    for j in i:
        if j != ' ' and in_out == 0:
            w += 1
            in_out = 1
        elif j == ' ':
            in_out = 0
 
print(l, w, c)

Пример выполнения:

File name: cpu.txt
Intel Core i3 - 4 шт.
Intel Core i5 - 10 шт.
AMD FX-6350 - 2 шт.
3 17 48

Создано