Problem with filter()
Jerry Hill
malaclypse2 at gmail.com
Tue Apr 3 11:31:14 EDT 2007
On 4/3/07, Boudreau, Emile <Emile.Boudreau at cognos.com> wrote:
> Sorry folks my mistake def is_dev should be:
> def is_Dev(stringy):
> stringx = stringy.split('-')
> if stringx[0] == '':
> if stringx[1] == r'win32':
> if stringx[2] == r'app':
> if stringx[4] == r'dev.tar.gz':
> return 1
>
> But now the results of the filter is an empty list and i know it shouldn't
> be.
Well, you haven't told us what you expect the result to be, but as far
as I can tell, an empty list is the correct answer, because you don't
have any files in your list that match your rules.
This line
> if stringx[0] == '':
is very likely your problem. That requires that your file start with
a '-', so that after you split it stringx[0] will equal ''.
You may need something more like this:
def is_Dev(stringy):
print stringy
try:
stringx = stringy.split('-')
if stringx[1] == r'win32':
if stringx[2] == r'app':
if stringx[4] == r'dev.tar.gz':
return 1
except IndexError, e:
pass
That will still give you an empty list when run on your proposed
inputs though, because none of them are of the form
<something>-win32-app-<something>-dev.tar.gz
If this doesn't help, please give us some sample inputs and what you
expect the output to be.
--
Jerry
More information about the Python-list
mailing list