iterating through files

Chris Rebert clp2 at rebertia.com
Thu Feb 19 17:33:55 EST 2009


On Thu, Feb 19, 2009 at 2:28 PM, Mike Driscoll <kyosohma at gmail.com> wrote:
> On Feb 19, 4:22 pm, Mike Driscoll <kyoso... at gmail.com> wrote:
>> On Feb 19, 3:56 pm, oamram <oam... at gmail.com> wrote:
>>
>> > Hi Pythonist,
>> > new to python. i have a directory with about 50 text file and i need to
>> > iterate through them and get
>> > line 7 to 11 from each file and write those lines into another file(one file
>> > that will contain all lines).
>>
>> > Cheers, Omer.
>> > --
>> > View this message in context:http://www.nabble.com/iterating-through-files-tp22048070p22048070.html
>> > Sent from the Python - python-list mailing list archive at Nabble.com.
>>
>> I would recommend using the glob module to grab a list of the files
>> you want or you can just create your own list. Then use a loop to grab
>> the lines you want. Something like this:
>>
>> f = open(textFile)
>> newFile = open(newFileName, "a")
>> x = 1
>> for line in f.readlines():
>>     if x >=7 and x <=11:
>>          newFile.write(line + "\n")
>>
>> You could even put the above inside a loop that loops over the list of
>> files. Anyway, that's one approach. I'm sure there are many others.
>>
>> Mike
>
> Oops...I forgot to iterate the counter. The code should look like
> this:
>
> <code>
>
> f = open(textFile)
> newFile = open(newFileName, "a")
> x = 1
> for line in f.readlines():
>    if x >=7 and x <=11:
>         newFile.write(line + "\n")
>    x +=1
>
> </code>

Or you could use enumerate(); also, readlines() isn't necessary:

f = open(textFile)
newFile = open(newFileName, "a")
for x, line in enumerate(f):
    if x >=7 and x <=11:
        newFile.write(line + "\n")

Sounds a bit like homework to me though...

Cheers,
Chris

-- 
Follow the path of the Iguana...
http://rebertia.com



More information about the Python-list mailing list