Python; jump to a concrete line

Chris cwitts at gmail.com
Thu Dec 20 13:23:17 EST 2007


On Dec 20, 7:56 pm, Horacius ReX <horacius.... at gmail.com> wrote:
> Hi, sorry but after looking for information, I still did not get how,
> when reading a text file in python, can one jump to a concrete line
> and then read the different data (separated by spaces). In each line
> there is different number of columns so sometimes i get kind of "index
> out" error. Is there a better way to read the different data on each
> row and avoiding to know the exact number of columns ?
>
> Thanks

If you are working with a file that is of a fixed length you can use
the .seek() function
ie. 500 characters per line, and a newline character is an additional
one then for the 10th line you would do:

file_input.seek(5010, 0)
file_input.readline()

If it is not a fixed length file you can do:

line_to_seek = 9 # for the 10th line, you need to look for num9 as
counting starts @ 0
for (i, line) in enumerate(file_input):
    if i == line_to_seek:
        .... process the line

As for combatting the issue of lack of data on a line, do something
like:

line_contents = line.split(' ')
if len( line_contents ) = required_elements:
    .... do something
else:
    .... print 'failed'



More information about the Python-list mailing list