[Q] How to ignore the first line of the text read from a file

Marc 'BlackJack' Rintsch bj_666 at gmx.net
Thu Aug 28 15:32:45 EDT 2008


On Thu, 28 Aug 2008 10:16:45 -0700, norseman wrote:

> Benjamin Kaplan wrote:
>> On Thu, Aug 28, 2008 at 12:11 AM, youngjin.michael at gmail.com <
>> youngjin.michael at gmail.com> wrote:
>> 
>>> Hello,
>>>
>>> I am new to Python and have one simple question to which I cannot find
>>> a satisfactory solution.
>>> I want to read text line-by-line from a text file, but want to ignore
>>> only the first line. I know how to do it in Java (Java has been my
>>> primary language for the last couple of years) and following is what I
>>> have in Python, but I don't like it and want to learn the better way
>>> of doing it.
>>>
>>> file = open(fileName, 'r')
>>> lineNumber = 0
>>> for line in file:
>>>    if lineNumber == 0:
>>>        lineNumber = lineNumber + 1
>>>    else:
>>>        lineNumber = lineNumber + 1
>>>        print line
>>>
>>> Can anyone show me the better of doing this kind of task?
>>>
>>> Thanks in advance.
>>>
>>> --
>> 
>> 
>> Files are iterators, and iterators can only go through the object once.
>> Just call next() before going in the for loop. Also, don't use "file"
>> as a variable name. It covers up the built-in type.
>> 
>> afile = open(file_name, 'r')
>> afile.next() #just reads the first line and doesn't do anything with it
>> for line in afile :
>>    print line
>> 
>> 
>>> http://mail.python.org/mailman/listinfo/python-list
>>>
>>>
>> 
>> 
------------------------------------------------------------------------
>> 
>> --
>> http://mail.python.org/mailman/listinfo/python-list
> 
> ==================
> actually:
> import os
> 
> file = open(filename, 'r')
> for line in file:
>    dummy=line
>    for line in file:
>      print line
> 
> 
> is cleaner and faster.

That's not cleaner, that's a 'WTF?'!  A ``for`` line over `file` that 
does *not* iterate over the file but is just there to skip the first line 
and a completely useless `dummy` name.  That's seriously ugly and 
confusing.

Ciao,
	Marc 'BlackJack' Rintsch



More information about the Python-list mailing list