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

Обновлено: 21.11.2024

Для файла > 5 ГБ просто со строками, подобными Apache access.log.

Мне нужно получить количество строк.

Любые конструкции, подобные

прочитал бы весь файл, и это заняло бы очень много времени.

С другой стороны, например

работает очень быстро.

Можно получить хотя бы оценку количества строк, по размеру первых строк в байтах и ​​общему размеру файла.

Есть ли более точный способ?

Вы ищете алгоритм или конкретную реализацию Python? Если второе, дайте мне знать, и я перенесу это в Stack Overflow.

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

Чтобы оценить количество строк без их фактического подсчета, вам понадобится приблизительное количество символов в строке. Если файл очень большой и длина строк статистически регулярна, подсчитайте количество строк в первом мегабайте, чтобы получить оценку байтов на строку, а затем разделите общий размер файла на это значение. (Примечание: я не думаю, что «оптимальный» здесь возможен, потому что вы обязательно жертвуете точностью ради скорости. Нет ничего «более оптимального», чем сканирование всего файла, если вы хотите получить правильный ответ.)

@StevenBurnap: это больше похоже на ответ, чем на просьбу о разъяснении. Почему бы не написать это как ответ?

5 ответов 5

Насколько я понимаю ваш вопрос, вы хотите иметь возможность ОЦЕНИТЬ количество строк в файле, не перебирая файл. Несколько вещей, которые приходят на ум:

ОЦЕНКА на основе размера файла Оценка всегда предполагает компромисс: разумное приближение с меньшим объемом работы лучше, чем абсолютное значение с большим объемом работы. Мне нравится ваша идея установить средний размер линии; скажем, что ваши файлы обычно следуют одному и тому же шаблону (например, координаты из какого-то эксперимента), то было бы разумно предположить, что файл может состоять из:

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

Альтернативный вариант: поместить количество строк в HEADER. Используя способность Python выполнять итерацию по файлу, вы можете вычислить количество строк один раз, а затем запросить это значение так часто, как захотите (подумайте об этом, как о сортировке файла). массив один раз, а затем много раз выполняет бинарный поиск по нему). Если вам регулярно нужно знать, сколько строк в файле, это может быть разумным и точным способом сделать это.

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

Использование подобного генератора также оптимизировано для Python, так что он настолько быстр, насколько это возможно для Python :)

Это программа Python для подсчета количества строк в текстовом файле.

Программа берет имя файла от пользователя и подсчитывает количество строк в этом файле.

<р>1. Возьмите имя файла от пользователя.
2. Прочитайте каждую строку из файла и увеличьте переменную счетчика
3. Распечатайте количество строк.
4. Выход.

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

<р>1. Пользователь должен ввести имя файла.
2. Файл открывается с помощью функции open() в режиме чтения.
3. Цикл for используется для чтения каждой строки в файле.
4. Счетчик строк увеличивается каждый раз, и печатается окончательный счет.

Sanfoundry Global Education & Learning Series – Программы Python.

Следующие шаги:

  • Получите бесплатный сертификат о заслугах в программировании на Python
  • Примите участие в конкурсе сертификации программистов на Python
  • Стать лидером в программировании на Python
  • Пройдите тесты по программированию на Python
  • Практические тесты по главам: главы 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  • Проверки по главам: главы 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Похожие сообщения:

  • Подать заявку на стажировку по Python
  • Купить книги по информационным технологиям
  • Подать заявку на стажировку по программированию
  • Купить книги по Python
  • Практика программирования MCQ

Рекомендуемые статьи:

Дополнительные ресурсы:

Популярные страницы:

Подпишитесь на наши информационные бюллетени (по темам). Участвуйте в конкурсе сертификации Sanfoundry, чтобы получить бесплатный Сертификат отличия. Присоединяйтесь к нашим социальным сетям ниже и будьте в курсе последних конкурсов, видео, стажировок и вакансий!

Маниш Бходжасиа, ветеран технологий с более чем 20-летним опытом работы в Cisco и Wipro, является основателем и техническим директором Sanfoundry. Он живет в Бангалоре и занимается разработкой Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Оставайтесь на связи с ним в LinkedIn.

Подпишитесь на его бесплатные мастер-классы на Youtube и технические обсуждения на Telegram SanfoundryClasses.

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

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

Получить количество строк в файле в Python с помощью функций open() и sum()

Простым способом получить количество строк в файле является перебор каждой строки файлового объекта, возвращаемого функцией open().

Функция open(file, mode) принимает файл в качестве входных данных и возвращает файловый объект в качестве выходных данных. Файл — это объект, подобный пути, который может быть строковым или байтовым объектом и содержать путь к файлу. Режим представляет режим, в котором мы хотим открыть файл, например режим чтения, записи, добавления и т. д.

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

Получить количество строк в файле на Python с помощью метода mmap.mmap()

Метод mmap.mmap(fileno, length) сопоставляет длину число байтов из файла, указанного в fileno, и возвращает объект mmap. Если значение length равно 0, максимальная длина карты будет равна размеру файла.

Мы можем использовать объект mmap, возвращенный методом mmap.mmap(), а затем использовать метод mm.readline() для доступа к строкам, пока не достигнем конца файла. Поскольку мы хотим загрузить весь файл, мы передадим 0 в качестве аргумента длины.

Получить количество строк в файле в Python с помощью метода file.read()

Если размер файла огромен и нам нужен быстрый способ чтения файла небольшими порциями, мы можем использовать метод file.read() для чтения данных в виде массива байтов в буфер указанного размера.< /p>

В приведенном ниже примере кода показано, как считать данные файла в буфер с помощью метода file.read(), а затем выполнить итерацию, чтобы получить количество строк:

Статьи DelftStack написаны такими же фанатами программного обеспечения, как и вы. Если вы также хотите внести свой вклад в DelftStack, написав платные статьи, вы можете посетить страницу «Написать для нас».

Статья по теме — файл Python

сообщить об этом объявлении

В этом руководстве мы узнаем, как найти общее количество строк в файле с помощью Python.

На самом деле мы узнаем общее количество строк в текстовом файле. С помощью этого руководства вы узнаете, как открыть файл и прочитать его содержимое в Python. Python предоставляет встроенные методы для чтения, записи и удаления файла. Вы можете использовать эти файловые методы «из коробки», не импортируя какой-либо внешний модуль.

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

  1. Откройте файл в режиме чтения. Чтобы прочитать файл, нам нужно сначала открыть его. Мы открываем файл в режиме чтения, так как читаем только содержимое файла.
  2. Инициализируйте один счетчик как 0. Этот счетчик будет содержать общее количество строк в файле.
  3. Используя цикл for, прочитайте файл построчно.
  4. Увеличивайте счетчик на 1 для каждой строки. Продолжайте увеличивать значение счетчика, пока чтение файла не будет завершено. Счетчик будет содержать общее количество строк в конце.
  5. Наконец, распечатайте счетчик, то есть общее количество строк.

Код размещен здесь, на Github.

  1. Сохраните путь к файлу в переменной file_path. Измените путь к файлу на путь к файлу, который вы хотите проверить.
  2. Инициализируйте одну переменную lines_count как 0. Эта переменная сохранит общее количество строк в указанном выше файле.
  3. Откройте файл в режиме чтения или r.Метод open() принимает два аргумента. Первый аргумент — это файл, который мы хотим открыть, а второй аргумент — это вид разрешения, которое мы хотим открыть для файла. Здесь мы открываем файл в режиме чтения, поэтому строка ‘r’ передается в качестве второго аргумента. Если вы хотите записать что-либо в файл, вам нужно будет передать 'w' или, если вы хотите добавить что-либо к файлу, вам нужно будет передать 'a' в качестве второго аргумента.
  4. Используя цикл for, прочтите содержимое файла построчно. Мы открыли файл как ‘f’, т. е. переменная ‘f’ будет содержать ссылку на файл, который мы открыли. Цикл for предназначен для чтения всех строк в этой файловой переменной или в этом файле.
  5. Для каждой строки увеличить значение lines_count на 1. Как объяснялось выше, этот счетчик увеличивается на единицу при каждой итерации цикла. Когда цикл завершится, эта переменная будет содержать общее количество строк в файле.
  6. Наконец, распечатайте общее количество строк, то есть lines_count.

В этом руководстве мы научились подсчитывать общее количество строк файла в Python. Мы узнали, как открыть файл и как читать его содержимое. Попробуйте запустить приведенный выше пример и оставьте один комментарий, если у вас есть какие-либо вопросы.

Читайте также: