Re: [Tutor] list packing

2006-02-27 Thread Kent Johnson
kevin parks wrote:
 John,
 
 Thanks... i am liking this variation a tad more since it means i only
 have to type the path in one place  but it is akin to your second
 one... i was (still am really) having a hard time understanding
 how to apply path.join _and_ listdir  sometimes list comprehensions
 twist my brain but this one is worth studying ...
 
 nice! two little lines that do a boatload of work! hee hee
 
 
 pth = '/Users/kpp9c/snd/01'
 samples = [os.path.join(pth, f) for f in os.listdir(pth) if f.endswith 
 ('.aif')]
 
 
 i could even add:
 samples = [os.path.join(pth, f) for f in os.listdir(pth) if f.endswith 
 ('.aif'  f.startswith('t')]

You might like Jason Orendorff's path module. Using it you can write
import path
pth = path.path('/Users/kpp9c/snd/01')
samples = list(pth.walkfiles('t*.aif'))

path.walkfiles() returns an iterator, that is why the list() call is 
needed. If you are going to loop over the samples you can omit it:
   for sample in pth.walkfiles('t*.aif'):
 ...

http://www.jorendorff.com/articles/python/path/index.html

Kent

___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] list packing

2006-02-26 Thread John Fouhy
On 27/02/06, kevin parks [EMAIL PROTECTED] wrote:
 snd = [f for f in os.listdir('/Users/kevin/snd/') if f.endswith('.aif')]

If this is all you need, then you could do something like:

snd = ['/Users/kevin/snd/%s' % f for f in
os.listdir('/Users/kevin/snd/') if f.endswith('.aif')]

Or, slightly more robustly (?),

snd = [os.path.join('/Users/kevin/snd', f) for f in
os.listdir('/Users/kevin/snd/') if f.endswith('.aif')]

--
John.
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] list packing

2006-02-26 Thread Sean Perry
John Fouhy wrote:
 On 27/02/06, kevin parks [EMAIL PROTECTED] wrote:
 
snd = [f for f in os.listdir('/Users/kevin/snd/') if f.endswith('.aif')]
 
 
 If this is all you need, then you could do something like:
 
 snd = ['/Users/kevin/snd/%s' % f for f in
 os.listdir('/Users/kevin/snd/') if f.endswith('.aif')]
 
 Or, slightly more robustly (?),
 
 snd = [os.path.join('/Users/kevin/snd', f) for f in
 os.listdir('/Users/kevin/snd/') if f.endswith('.aif')]
 

os.path.join() is self-documenting. I find this to be a better reason to 
use it than anything else. But then my code only ever runs on Unix of 
some flavor.
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor