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

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

  • автор:

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

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

10 ответов

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

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

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

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

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

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

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

Это можно сделать полностью с выражениями генераторов in-line, использующими itertools, но это выглядит довольно странно:

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

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

Я не новичок в stackoverflow, просто не имел учетной записи и обычно приходил сюда для ответов. Я еще не могу прокомментировать или проголосовать за ответ. НО хотел сказать, что код от Майкла Бэкона выше работает очень хорошо. Я новичок в Python, но не для программирования. Я читал Python Crash Course, и есть несколько вещей, которые я хотел сделать, чтобы разбить крышку для чтения, чтобы охватить подход. Одной утилитой, использующей с точки зрения ETL или даже качества данных, было бы захват количества строк файла независимо от любого ETL. Файл имеет X количество строк, вы импортируете в SQL или Hadoop, и вы получаете X количество строк. Вы можете проверить на самом низком уровне количество строк файла необработанных данных.

Я играл с его кодом и делал некоторые тесты, и этот код очень эффективен до сих пор. Я создал несколько различных CSV файлов, различных размеров и строк. Вы можете увидеть мой код ниже, и мои комментарии содержат время и подробности. В приведенном выше коде Майкл Бэкон работает примерно в 6 раз быстрее, чем обычный метод Python для простого цикла линий.

Как сосчитать строчки в txt документе в Python 3?

Нужен код для Python 3 чтобы сосчитать строчки в txt документе.

Вариант без загрузки файла в память целиком:

insolor's user avatar

Хорошим решением будет посчитать количество переводов строк ( ‘\n’ ) и прибавить единицу.

Пример:

UPD:
Код можно оптимизировать.

Вот версия, которая в большинстве случаев будет использовать меньше памяти:

На каждой итерации в памяти хранится только одна строка (прошлые с аппетитом съедает сборщик мусора)

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

Тогда оптимальным вариантом будет чтение файла по некоторому количеству данных:

Этот способ потенциально экономит очень много памяти. При желании, можно считывать хоть по символу. Но тогда мы незначительно, но проигрываем по скорости.

Русские Блоги

Самый простой способ — прочитать файл в большом списке, а затем подсчитать длину списка. Если путь к файлу передается в качестве параметра filepath, то только одна строка кода может удовлетворить наши потребности:

Если это очень большой файл, описанный выше метод может быть медленным или даже недействительным. В настоящее время вы можете использовать цикл для обработки:

Другой способ ускорить обработку больших файлов — подсчитать количество символов новой строки в файле ‘\ n’ (или строке, содержащей ‘\ n’, например, в системе Windows):

Параметр «rb» необходим, иначе приведенный выше код будет очень медленным в системе Windows.

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

2. Прочитать содержимое определенной строки файла (проверены файлы 1G, работоспособность неплохая)

3. Используйте linecache для чтения содержимого файла (проверены файлы размером 1G, эффективность неплохая)

Python: многострочные строки. Как узнать количество строк? Как перебрать строки?

Есть многострочная строка. Нужно узнать количество строк в ней. Так же нужно уметь перебирать строки. Вопрос: как это делать?

Я пока не придумал ничего лучшего, чем преобразовывать многострочную строку в список через метод splitlines(), и с ним уже работать:

Но это как-то неправильно — примерно в два раза расходуется память. Это нехорошо особенно если многострочная строка получена от какого-нибудь лога выполнения процесса на десяток миллионов строк.

Как узнать количество строк и перебрать строки в многострочной строке более правильно?

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

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