use fileinput to read a specific line

Russ P. Russ.Paielli at gmail.com
Mon Jan 7 23:10:58 EST 2008


On Jan 7, 7:15 pm, jo3c <JO3chi... at gmail.com> wrote:
> hi everybody
> im a newbie in python
> i need to read line 4 from a header file
> using linecache will crash my computer due to memory loading, because
> i am working on 2000 files each is 8mb
>
> fileinput don't load the file into memory first
> how do i use fileinput module to read a specific line from a file?
>
> for line in fileinput.Fileinput('sample.txt')
> ????

Assuming it's a text file, you could use something like this:

lnum = 0 # line number

for line in file("sample.txt"):
    lnum += 1
    if lnum >= 4: break

The variable "line" should end up with the contents of line 4 if I am
not mistaken. To handle multiple files, just wrap that code like this:

for file0 in files:

    lnum = 0 # line number

    for line in file(file0):
        lnum += 1
        if lnum >= 4: break

    # do something with "line"

where "files" is a list of the files to be read.

That's not tested.



More information about the Python-list mailing list