Ne kadar büyük bir metin dosyasındaki belirli bir satırı atlamak için? | Netgez.com
SORU
6 Mart 2009, Cuma


Ne kadar büyük bir metin dosyasındaki belirli bir satırı atlamak için?

Aşağıdaki kodu için: herhangi bir alternatif var

startFromLine = 141978 # or whatever line I need to jump to

urlsfile = open(filename, "rb", 0)

linesCounter = 1

for line in urlsfile:
    if linesCounter > startFromLine:
        DoSomethingWithThisLine(line)

    linesCounter  = 1

Eğer büyük bir metin dosyası (~15 MB) bilinmeyen ama farklı uzunlukta çizgiler ile uğraşıyorum, ve şimdiden biliyorum ki belirli bir satır atlamak için ihtiyacınız var? Dosyanın en azından ilk yarısını göz ardı edebileceğimi biliyorum onları tek tek işleyerek kötü hissediyorum. Orada daha zarif bir çözüm arıyor olabilir.

CEVAP
6 Mart 2009, Cuma


Tatili nerede olduğunu bilmediğine göre önde dosyayı okuma olmadan en az bir kez, atlama olamaz. Gibi bir şey yapabilirsin:

# Read in the file once and build a list of line offsets
line_offset = []
offset = 0
for line in file:
    line_offset.append(offset)
    offset  = len(line)
file.seek(0)

# Now, to skip to line n (with the first line being line 0), just do
file.seek(line_offset[n])

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • DorkmanScott

    DorkmanScott

    14 NİSAN 2006
  • L33TNoonProductions

    L33TNoonProd

    24 EYLÜL 2010