Уведомления

Группа в Telegram: @pythonsu

#1 Июль 4, 2009 10:35:04

jeha
От:
Зарегистрирован: 2009-06-27
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

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

У меня есть текстовый файл, содержимое которого добавляеться построчно. Т.е. получаеться что новая строка это новый элемент. Необходимо при открытии файла узнать количество строк. Мне приходит в голову считать количество символов “\n” , но может есть способ проще?



Офлайн

#2 Июль 4, 2009 12:15:08

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

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

len(open('file', ‘r’).readlines()) если файл не очень большой.



Офлайн

#3 Июль 4, 2009 12:44:24

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

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

sum(1 for l in open('file', ‘r’)) если файл очень большой.



Отредактировано (Июль 4, 2009 12:45:40)

Офлайн

#4 Июль 6, 2009 00:49:35

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

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

slivlen
ZZZ
Интересно, только кто файл закрывать в таком виде будет? :)



Офлайн

#5 Июль 6, 2009 10:44:33

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

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

Он сам закроется…



Офлайн

#6 Июль 6, 2009 11:11:56

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

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

igor.kaist
ну я лично привык руками все делать, а не оставлять Garbage Collector'у… На хабре народ вроде даже проверял - возможны проблемы при таком подходе. Вот тут: http://habrahabr.ru/blogs/python/62383/#comment_1722446



Офлайн

#7 Июль 6, 2009 15:05:06

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

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

Вот уже сколько лет пишу на этом замечательном языке, сколько сотен (тысяч?) файлов им открыл и не закрыл руками, а проблемы с этим у меня ни разу не возникало. Так что предлагаю “забить и не парится”. Тем более, что файл открывается только для чтения и никакие кэши нам не страшны.
А если уж так хочется сделать это руками, то надо добавить ещё две строчки кода, что проблемой обычно не является.

P.S. Да, если уж всё нравится делать руками, то может стоит посмотреть на более низкоуровневый язык? Си? OCAML?



Офлайн

#8 Июль 7, 2009 10:40:55

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Enchantner
ну я лично привык руками все делать, а не оставлять Garbage Collector'у…
gc в python как правило оперативно удаляет неиспользованные объекты, даже если программа не большая, в отличии н-р от той же java, где gc за время выполнения небольшой программы, может вообще ни разу не отработать. Ну и полностью согласен с ZZZ, у меня тоже не возникало проблем с незакрытыми файлами даже в крупных web проектах на python.



Офлайн

#9 Март 20, 2013 19:13:54

caufman
Зарегистрирован: 2013-02-15
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Есть вот такой вот код:

import sys
from PyQt4 import QtCore, QtGui
from random import randint
# Загрузка словарей
dic_features_file    = open ('L:/src/generator/dic/features.txt',  'rt')
# Декодируем полученные словари в UTF-8
dic_features_txt    = dic_features_file  .read() .decode ('utf-8')
# Определяем количество строк в словарях
dic_features_line   = len (dic_features_file.readlines())
print dic_features_txt
print 'Strok: ', dic_features_line
который на выходе выдает следующий результат:
№;Именительный (кто, что);Винительный (кого, что);Род
1;трусливый;трусливого;он
2;трусливая;трусливую;она
3;отважный;отважного;он
4;отважная;отважную;она
5;прекрасный;прекрасного;он
6;прекрасная;прекрасную;она
7;ничтожный;ничтожного;он
8;ничтожная;ничтожную;она
9;уродливый;уродливого;он
10;уродливая;уродливую;она
Strok: 0
почему ноль то???

Офлайн

#10 Март 20, 2013 20:08:15

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

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

потому что ‘rt’

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version