Форум сайта python.su
Доброго времени суток!
Есть файл размером с 1.5 гига. Так вот мне нужно чтоб его считать побайтно, а не весь сразу(для того чтоб памяти много не жрал). В книгах таких примеров не видел. Есть такая ф-ция f.read(1) - но как заставить её работать в цикле? Спасибо за внимание
Офлайн
Есть такая ф-ция f.read(1) - но как заставить её работать в цикле?Ну, делаете цикл и вызываете её в цикле.
Офлайн
А как узнать сколько в файле байт?
Офлайн
Всё, решил с помощью лома и какой то матери:
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)
Офлайн
import os
print os.stat(FILENAME)[6]
for x in xrange(filesize):
#do something
Отредактировано (Фев. 27, 2009 17:51:15)
Офлайн
igor.kaist
спасибо!!!
Отредактировано (Фев. 27, 2009 19:13:18)
Офлайн
Я вообще считаю, что пути оптимизации нет придела. Даже 2*2 можно оптимизировать.
Офлайн
А как узнать сколько в файле байт?Я бы крутил, пока бы на EOF не наткнулся.
Офлайн
FerromanПодскажите, плизь!
Я бы крутил, пока бы на EOF не наткнулся.
Офлайн
>>> 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
!
Офлайн