Dosya benzeri bir nesnenin sonuna gelene kadar dönmem gerekiyor, ancak "bunu yapmanın bariz bir yolu" bulamıyorum, bu da bana bir şeyle baktığımdan şüphelenmemi sağlıyor. :-)Python'da EOF'ye nasıl geçilir?
Bir akışım var (bu durumda, bu bir StringIO nesnesi, ama genel durum hakkında da merak ediyorum) "< uzunluğu> < veri>" biçiminde bilinmeyen sayıda kayıt tutuyor örneğin: Şimdi
data = StringIO("\x07\x00\x00\x00foobar\x00\x04\x00\x00\x00baz\x00")
, bu (Ben ne düşündüğünü) biraz un-pythonic görünüyor, başlatılan bir döngü kullanmaktadır okumayı hayal tek net yol:
len_name = data.read(4)
while len_name != "":
len_name = struct.unpack("<I", len_name)[0]
names.append(data.read(len_name))
len_name = data.read(4)
C benzeri bir dilde, 012 read(4)
'u 012'ye yapıştıracağım's test cümlesi, ama tabii ki bu Python için çalışmayacak. Bunu başarmanın daha iyi bir yolu üzerinde herhangi bir düşünce?
kadar çok cevap! Belki de öğle yemeğine gitmeden hemen önce göndermemeliydim. :-) –