Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 27, 2009 16:51:10

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

чтение файла побайтно

Доброго времени суток!
Есть файл размером с 1.5 гига. Так вот мне нужно чтоб его считать побайтно, а не весь сразу(для того чтоб памяти много не жрал). В книгах таких примеров не видел. Есть такая ф-ция f.read(1) - но как заставить её работать в цикле? Спасибо за внимание

Офлайн

#2 Фев. 27, 2009 17:24:41

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

чтение файла побайтно

Есть такая ф-ция f.read(1) - но как заставить её работать в цикле?
Ну, делаете цикл и вызываете её в цикле.

Офлайн

#3 Фев. 27, 2009 17:39:51

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

чтение файла побайтно

А как узнать сколько в файле байт?

Офлайн

#4 Фев. 27, 2009 17:48:59

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

чтение файла побайтно

Всё, решил с помощью лома и какой то матери:
import os,stat
st=os.stat(“1.txt”)
print type(st)
f=open(“1.txt”,“r”)
i=0
while i<st:
if (f.read(2)==“va”):
print “Нашёл!!!”
i+=1
f.close()


Может кто оптимизацию подскажет - буду только признателен!

Отредактировано (Фев. 27, 2009 17:50:08)

Офлайн

#5 Фев. 27, 2009 17:49:23

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

чтение файла побайтно

import os
print os.stat(FILENAME)[6]
А зачем while использовать, если можно проще:
for x in xrange(filesize):
#do something



Отредактировано (Фев. 27, 2009 17:51:15)

Офлайн

#6 Фев. 27, 2009 19:13:00

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

чтение файла побайтно

igor.kaist
спасибо!!!

Отредактировано (Фев. 27, 2009 19:13:18)

Офлайн

#7 Фев. 27, 2009 19:30:08

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

чтение файла побайтно

Я вообще считаю, что пути оптимизации нет придела. Даже 2*2 можно оптимизировать.

Офлайн

#8 Фев. 27, 2009 20:25:22

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

чтение файла побайтно

А как узнать сколько в файле байт?
Я бы крутил, пока бы на EOF не наткнулся.

Офлайн

#9 Фев. 27, 2009 20:54:29

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

чтение файла побайтно

Ferroman
Я бы крутил, пока бы на EOF не наткнулся.
Подскажите, плизь!

Офлайн

#10 Фев. 28, 2009 00:03:56

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

чтение файла побайтно

>>> f = open('f')
>>> s = f.read(1)
>>> while s:
... print s
... s = f.read(1)
...
H
e
l
l
o

W
o
r
l
d
!



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version