"Maximum recursion depth exceeded"...why?
Thomas Allen
thomasmallen at gmail.com
Tue Feb 17 17:08:39 EST 2009
On Feb 17, 4:46 pm, Thomas Allen <thomasmal... at gmail.com> wrote:
> 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
>
> if __name__ == "__main__":
> main()
Please note that I'm not using os.walk(sys.argv[1]) because the
current depth of recursion is relevant to the transformation I'm
attempting. Basically, I'm transforming a live site to a local one and
the live site uses all absolute paths (not my decision...). I planned
on performing the replace like so for each line:
line.replace(root, "../" * depth)
So that a file in the top-level would simple remove all instances of
root, one level down would sub "../", etc.
More information about the Python-list
mailing list