Re: iterating through files

2009-02-20 Thread Marc 'BlackJack' Rintsch
On Thu, 19 Feb 2009 13:56:38 -0800, oamram wrote:

 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).

Untested:

from __future__ import with_statement
from glob import glob
from itertools import islice


def main():
with open('result.txt', 'w') as out_file:
for filename in glob('foo/*.txt'):
with open(filename, 'r') as lines:
out_file.writelines(islice(lines, 7, 12))


if __name__ == __main__:
main()


Ciao,
Marc 'BlackJack' Rintsch
--
http://mail.python.org/mailman/listinfo/python-list


iterating through files

2009-02-19 Thread oamram

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.

--
http://mail.python.org/mailman/listinfo/python-list


Re: iterating through files

2009-02-19 Thread Mike Driscoll
On Feb 19, 3:56 pm, oamram oam...@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
--
http://mail.python.org/mailman/listinfo/python-list


Re: iterating through files

2009-02-19 Thread Mike Driscoll
On Feb 19, 4:22 pm, Mike Driscoll kyoso...@gmail.com wrote:
 On Feb 19, 3:56 pm, oamram oam...@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

Sorry about that.

Mike
--
http://mail.python.org/mailman/listinfo/python-list


Re: iterating through files

2009-02-19 Thread Chris Rebert
On Thu, Feb 19, 2009 at 2:28 PM, Mike Driscoll kyoso...@gmail.com wrote:
 On Feb 19, 4:22 pm, Mike Driscoll kyoso...@gmail.com wrote:
 On Feb 19, 3:56 pm, oamram oam...@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
--
http://mail.python.org/mailman/listinfo/python-list


Re: iterating through files

2009-02-19 Thread Steve Holden
Chris Rebert wrote:
 On Thu, Feb 19, 2009 at 2:28 PM, Mike Driscoll kyoso...@gmail.com wrote:
 On Feb 19, 4:22 pm, Mike Driscoll kyoso...@gmail.com wrote:
 On Feb 19, 3:56 pm, oamram oam...@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...
 
But all these solutions read the whole file.  You should really read six
lines throwing them away then read five lines to keep.

Since this might be homework I'll not write the code, but it will
involve f.next() ...

regards
  Steve
-- 
Steve Holden+1 571 484 6266   +1 800 494 3119
Holden Web LLC  http://www.holdenweb.com/

--
http://mail.python.org/mailman/listinfo/python-list


Re: iterating through files

2009-02-19 Thread Mensanator
On Feb 19, 4:56 pm, Steve Holden st...@holdenweb.com wrote:
 Chris Rebert wrote:
  On Thu, Feb 19, 2009 at 2:28 PM, Mike Driscoll kyoso...@gmail.com wrote:
  On Feb 19, 4:22 pm, Mike Driscoll kyoso...@gmail.com wrote:
  On Feb 19, 3:56 pm, oamram oam...@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...

 But all these solutions read the whole file.  You should really read six
 lines throwing them away then read five lines to keep.

It might be useful not to assume every file has at least 11 lines
and program accordingly.


 Since this might be homework I'll not write the code, but it will
 involve f.next() ...

 regards
   Steve
 --
 Steve Holden        +1 571 484 6266   +1 800 494 3119
 Holden Web LLC              http://www.holdenweb.com/- Hide quoted text -

 - Show quoted text -

--
http://mail.python.org/mailman/listinfo/python-list