more os.walk() issues... probably user error

rbt rbt at athop1.ath.vt.edu
Wed Feb 16 11:34:26 EST 2005


rbt wrote:
> This function is intended to remove unwanted files and dirs from 
> os.walk(). It will return correctly *IF* I leave the 'for fs in 
> fs_objects' statement out (basically leave out the entire purpose of the 
> function).
> 
> It's odd, when the program goes into that statment... even when only a 
> 'pass', and nothing else is present, nothing is returned. Why is that? 
> I'm testing Python 2.4 on Linux x86 and WinXP. Results are the same on 
> either platform.
> 
>     def build_clean_list(self, path):
> 
>         file_skip_list = ['search_results.txt']
>         dir_skip_list = ['dev', 'proc', 'Temporary Internet Files']
> 
>         fs_objects = os.walk(path, topdown=True)
> ##      for fs in fs_objects:
> ##
> ##            for f in fs[2]:
> ##                if f in file_skip_list:
> ##                    print f
> ##                    fs[2].remove(f)
> ##
> ##            for d in fs[1]:
> ##                if d in dir_skip_list:
> ##                    print d
> ##                    fs[1].remove(d)
> 
>         return fs_objects
> 
> 

Just to clarify, it's wrong of me to say that 'nothing is returned'... 
in either case, this is what is returned:

Here's what was returned and its type:
----------------------------------------
<generator object at 0x407dbe4c>
<type 'generator'>
----------------------------------------

But, I can't iterate over the returned object when I descend into the 
for statement I mentioned above.




More information about the Python-list mailing list