Thomas Allen wrote:

> On Feb 17, 5:31 pm, Peter Otten <__pete...@web.de> wrote:
>> Thomas Allen 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):
>>
>> filename = os.path.join(dir, filename)
>>
>> > if os.path.isdir(filename):
>> > absToRel(filename, root)
>> > else:
>> > if(filename.endswith("html") or filename.endswith("htm")):
>> > print filename
>>
>> > if __name__ == "__main__":
>> > main()
>>
>> Without the addition for a directory and a subdirectory of the same
>> name, "dir/dir", os.listdir("dir") has "dir" (the child) in the result
>> list which triggers an absToRel() call on "dir" (the parent) ad
>> infinitum.
>>
>> Peter
> 
> I have two problems in this case:
> 
> 1. I don't know how to reliably map the current filename to an
> absolute path beyond the top-most directory because my method of doing
> so would be to os.path.join(os.getcwd(), filename)

Don't make things more complicated than necessary. If you can do
os.listdir(somedir) you can also do [os.path.join(somedir, fn) for fn in
os.listdir(somedir)].
 
> 2. For some reason, only one folder in the directory gets marked as a
> directory itself when there are about nine others in the top-most
> directory. I don't even know where to begin to solve this one.
> 
> I'm sure the first is an easy answer, but what do I need to do to
> solve the second?

If you solve the first properly the second might magically disappear. This
is what my crystal ball tells me because there is no code in sight...

Peter
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to