2013-11-14 3 views
0

Это мой код:Чтение сжатого файла линии по линии

f = gzip.open('nome_file.gz','r') 

    line = f.readline() 

    for line in f: 
      line = f.readline() 
      line = line.strip('\n') 
      if not line: break 
      elements = line.split(" ") 
      print elements[0]," ",elements[1]," ",elements[44]," ",elements[45] 

    f.close() 

Я действительно не знаю, почему только одна линия над ними читается.

ответ

4

for line in f: читает строку. Следующая строка line = f.readline() читает следующую строку и сохраняет ее в той же переменной.

Вы читаете каждую строку, но пропустите каждую секунду.

Просто снимите line = f.readline(), чтобы решить эту проблему.

+1

Кроме того, в реализации объекта по умолчанию, '.readline()' и 'next (f)' use * different * buffers, и вы не можете их смешивать. –

+0

"-.- Спасибо! У меня есть еще одна проблема, как я могу пропустить первую строку? Потому что таким образом (f.readline (0)) это не работает. – user2961420

+0

Это работает! Спасибо! – user2961420

Смежные вопросы