Как посчитать количество строк в файле python
Перейти к содержимому

Как посчитать количество строк в файле python

Подсчет количества строк, слов и букв в текстовом файле

Данный вариант программы считает количество строк, слов и символов (с учетом пробелов) с помощью строковых методов.

Алгоритм решения задачи:

Цикл for на каждой итерации извлекает из файла очередную строку. В теле цикла происходят следующие действия:

  1. Счетчик строк увеличивается на 1.
  2. Строка разбивается на слова с помощью метода split . Функция len считает количество слов в получившемся списке слов. Это количество добавляется к счетчику слов.
  3. Чтобы не учитывать символ перехода на новую строку ( ‘\n’ ), удаляем его методом strip . Символьная длина оставшейся строки измеряется функцией len . Полученное значение добавляется к счетчику символов.

Текстовый файл:

Код программы:

Это более классический алгоритм решения задачи. Мы не используем функцию len и методы строки.

Строка перебирается посимвольно. В данном случае при подсчете символов не учитывается не только символ перехода на новую строку, также исключаются пробелы и символы табуляции.

Для подсчета количества слов вводится дополнительная переменная ( pos ), которая «показывает», находимся ли мы внутри слова или нет. Если встречается непробельный символ и до этого мы находились вне слова, значит началось новое слово. Счетчик слов следует увеличить на 1.

как подсчитать общее количество строк в текстовом файле с помощью python

здесь есть четыре строки, и теперь я хочу получить результат как четыре. Как я могу это сделать?

9 ответов

можно использовать sum() с выражением генератор:

обратите внимание, что вы не можете использовать len(f) С f — это итератор. _ — это специальное имя переменной для одноразовых переменных, см. какова цель одной переменной подчеркивания » _ » в Python?.

можно использовать len(f.readlines()) , но это создаст дополнительный список в памяти, который даже не будет работать с огромными файлами, которые не помещаются в память.

по этой ссылке (как получить счетчик строк дешево в Python?) имеет много потенциальных решений, но все они игнорируют один способ сделать этот запуск значительно быстрее, а именно, используя unbuffered (raw) интерфейс, используя bytearrays, и делать свою собственную буферизацию.

используя модифицированную версию инструмента синхронизации, я считаю, что следующий код быстрее (и немного более pythonic), чем любое из предлагаемых решений:

вот мои тайминги:

Я бы разместил его там, но я относительно новый пользователь для stack exchange и не имею необходимой манны.

Это можно сделать полностью с генераторами выражений в строке с помощью itertools, но это выглядит довольно странно:

можно использовать sum() с выражением генератора здесь. Выражение генератора будет [1, 1, . ] до длины файла. Тогда мы зовем sum() , чтобы добавить их все вместе, чтобы получить общее количество.

кажется, что вы пробовали, что вы не хотите включать пустые строки. Затем вы можете сделать:

Вывести количество строк в файле

Подскажите, пожалуйста, как вывести количество строк, загруженных из файла? Я написал следующий код, но он выводит именно содержимое строк. А мне нужно количество:

user avatar

Чтобы вывести количество строк в файле, не обязательно сами строки сохранять, достаточно просто посчитать сколько раз символ новой строки встречается в тексте:

Файл открывается в текстовом режиме (перевод строки преобразуется в ‘\n’ на всех системах), читается блоками по 8K символов в каждом до конца файла и количество ‘\n’ в каждом блоке суммируется, чтобы найти общее число строк.

Код предполагает, что все строки, включая последнюю, заканчиваются символом новой строки также как wc -l утилита (принято на POSIX, иначе например, подумайте что будет, если вызвать cat *.txt ). Если последний символ не новая строка, последняя строка не считается (руками единицу добавить можно в этом случае).

Имея count_lines() функцию, легко получить желаемый вывод:

Если проникнуться дзеном пайтона:

На мой взгляд это то, что вам нужно, в легко понятном виде.

user avatar

user avatar

Вывести количество строк с помощью регулярного выражения. Особенность. Если последняя строка не пустая, то выведет количество на 1 элемент меньше.

На больших файлах ко всему файлу сразу применять не желательно, возможно проверить на пустые строки построчно или прочитав часть файла, потом сложив длину.

пример текстового файла

Как это работает. В данном случае жадность регулярного выражения отключена.

Жадность включена, из-за жадности регулярных выражений \n\n будут вместе там где ничего нет кроме переноса

Если посчитаем стандартно, то получим включая пустые строки, что пустая строка тоже строка. Этот метод считает всегда количество строк как мы это понимаем.

Причина по которой отличается количество

видна здесь, в конце нет переноса строки который считаем.

Вариант исправления количества строк для регулярных выражений, файл придется читать второй раз с конца.

Если символа переноса в последней строке нет, то прибавить плюс 1, в данном случае просто вывод на экран.

Алтернативное решение этой же проблемы чтение файла с начала построчно, далее взять последнюю строку и проверить в ней символ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *