Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 2, 2012 21:23:24

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Проблема с чтением из файла

Ты все-таки проверь. Комадну я дал.

Офлайн

#2 Сен. 2, 2012 22:13:05

Mozart
От:
Зарегистрирован: 2011-12-12
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с чтением из файла

Офлайн

#3 Сен. 3, 2012 03:18:19

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Проблема с чтением из файла

>>> n = 0
>>> with open('/etc/passwd') as fin:
...   for line in fin:
...     n += 1
... 
>>> n
38
>>>
это пример, как посчитать строки файла, не загружая его весь в память

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



Офлайн

#4 Янв. 13, 2013 23:34:53

shoik
Зарегистрирован: 2013-01-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с чтением из файла

Mozart
Есть файл, в нем 8 миллионов записей, проблема в том, что ни file.read() ни file.readlines() не позволяют мне прочитать из файла большее 1 090 000 строк (т.е. в 8 раз меньше)Вот 1 из примеров кода:
У меня была такая же проблема пока в конце не указал закрытие файла.
f = open('my_file', 'w')
f.write('Hello, ')
f.write('World!')
 f.close() # объязательно указать

Модератор: Обязательно пользоваться кнопкой КОД

Отредактировано cutwater (Янв. 14, 2013 15:04:43)

Офлайн

#5 Янв. 14, 2013 00:18:37

shoik
Зарегистрирован: 2013-01-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с чтением из файла

Mozart
Есть файл, в нем 8 миллионов записей, проблема в том, что ни file.read() ни file.readlines() не позволяют мне прочитать из файла большее 1 090 000 строк (т.е. в 8 раз меньше)Вот 1 из примеров кода:
input_file = open('msde.log', 'r')
output_file = open('output.log', 'w')
download_line = [] #create masiv
 #postrochno zapisivaem v pamiat'
kk = 0
for line in input_file:
    download_line.append(line)
    kk += 1
# zapis v file
n = 0
for line in download_line: 
    output_file.write(line) 
    n += 1
k = input_file.readline()
print 'in --', len(k), 'in --', kk, 'out --', n
input_file.close()
output_file.close()

Результат:
>>>
in – 0 in – 8337 out – 8337

Правда теперь у меня вопрос:
- по какой причине подсчетом len(k) результат пишет “0” ?

Модератор: Обязательно пользоваться кнопкой КОД

Отредактировано cutwater (Янв. 14, 2013 15:05:10)

Офлайн

#6 Янв. 14, 2013 00:31:06

shoik
Зарегистрирован: 2013-01-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с чтением из файла

shoik
Я понял. что так делать нельзя но не почему объясните пожалуйста.
А вот так работает
input_file = open('msde.log', 'r')
output_file = open('output.log', 'w')
download_line = []
k = input_file.readlines()
kk = 0
for line in k:
    download_line.append(line)
    kk += 1
    
n = 0
for line in download_line:
    output_file.write(line)
    n += 1
print 'in --', len(k), "in --", kk, 'out --', n
input_file.close()
output_file.close()

Результат:
in – 8337 in – 8337 out – 8337

Модератор: Обязательно пользоваться кнопкой КОД

Отредактировано cutwater (Янв. 14, 2013 15:06:21)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version