Количество строк, слов и символов в файле

Определить, сколько в текстовом файле строк, слов и символов.

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

Длину строки, то есть количество в ней символов, определяют с помощью встроенной в Python функции len().

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

import sys
 
fname = sys.argv[1]
lines = 0
words = 0
letters = 0
 
for line in open(fname):
    lines += 1
    letters += len(line)
 
    pos = 'out'
    for letter in line:
        if letter != ' ' and pos == 'out':
            words += 1
            pos = 'in'
        elif letter == ' ':
            pos = 'out'
 
print("Lines:", lines)
print("Words:", words)
print("Letters:", letters)

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

user@comp:~$ python3 words.py text.txt
Lines: 3
Words: 6
Letters: 27

Поскольку в Python есть строковый метод split(), то подсчет слов можно упростить, если преобразовывать каждую строку в список слов, измерять его длину, которую добавлять к общему количеству:

import sys
 
fname = sys.argv[1]
lines = 0
words = 0
letters = 0
 
for line in open(fname):
    lines += 1
    letters += len(line)
    words += len(line.split())
 
print("Lines:", lines)
print("Words:", words)
print("Letters:", letters)

Создано

Обновлено