newbie q
Stephen Thorne
stephen.thorne at gmail.com
Thu Jan 13 04:26:54 EST 2005
On Thu, 13 Jan 2005 17:05:39 +1000, Egor Bolonev <ebolonev at mail.ru> wrote:
>
> "Stephen Thorne" <stephen.thorne at gmail.com> сообщил/сообщила в новостях
> следующее: news:mailman.611.1105598828.22381.python-list at python.org...
> On Thu, 13 Jan 2005 15:55:10 +1000, Egor Bolonev <ebolonev at mail.ru> wrote:
> > how to get rid of 'for' operator in the code?
> >
> > import os, os.path
> >
> > def _test():
> > src = 'C:\\Documents and Settings\\Егор\\My Documents\\My Music\\'
> >
> > for i in [x for x in os.listdir(src) if
> > os.path.isfile(os.path.join(src,
> > x)) and len(x.split('.')) > 1 and x.split('.')[-1].lower() == 'm3u']:
> > os.remove(os.path.join(src, i))
> >
> > if __name__ == '__main__':
> > _test()
>
> import glob
> for x in glob.glob("*.m3u"):
> os.remove(x)
>
> i want to wipe out 'for x in []: f(x)' using map, lambda, reduce, filter and
> List
> Comprehensions [x for x in []]
> just don't get how to add string to all elements of list
Here's a few ways,
map(os.remove, glob.glob("*.m3u"))
[os.remove(x) for x in glob.glob("*.m3u")]
[os.remove(x) for x in os.listdir(src) if
os.path.isfile(os.path.join(src, x))
and len(x.split('.')) > 1
and x.split('.')[-1].lower() == 'm3u']
def myfilter(x):
return os.path.isfile(os.path.join(src, x)) and len(x.split('.')) >
1 and x.split('.')[-1].lower() == 'm3u'
map(os.remove, filter(myfilter, os.listdir(src)))
Regards,
Stephen Thorne.
More information about the Python-list
mailing list