"Maximum recursion depth exceeded"...why?

Christian Heimes lists at cheimes.de
Tue Feb 17 23:08:01 CET 2009


Thomas Allen schrieb:
> I must not be understanding something. This is a simple recursive
> function that prints all HTML files in argv[1] as its scans the
> directory's contents. Why do I get a RuntimeError for recursion depth
> exceeded?
> 
> #!/usr/bin/env python
> 
> import os, sys
> 
> def main():
>     absToRel(sys.argv[1], sys.argv[2])
> 
> def absToRel(dir, root):
>     for filename in os.listdir(dir):
>         if os.path.isdir(filename):
>             absToRel(filename, root)
>         else:
>             if(filename.endswith("html") or filename.endswith("htm")):
>                 print filename


Why so complicated?

for root, dirs, files in os.walk(directory):
    for filename in files:
        if filename.endswith((".htm"), (".html")):
            print os.path.join(root, filename)

Christian




More information about the Python-list mailing list