Python Forum
Recursive Call Going Elsewhere?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Recursive Call Going Elsewhere?
#5
(Jan-31-2018, 02:59 PM)DeaD_EyE Wrote: This snippet works:

def list_zip(file, filename=None):
    zf = zipfile.ZipFile(file, 'r')
    for cf in zf.filelist:
        print(zf.filename or filename, cf.filename, sep=': ')
        if cf.filename.lower().endswith('.zip'):
            with zf.open(cf.filename, 'r') as new_zf:
                list_zip(io.BytesIO(new_zf.read()), cf.filename)
The argument filename is only used to hand over the recursive call the current name of the open zip file.
The error-handling is your task :-P

SO COOL!!!!! Smile

OK, that's just fricken amazing! :)

Did you have this code mostly figured out or I'm assuming you've worked with nested zip files before?

I was finally able to get my version working with recursively extracting, then processing that tree, but yours is so much cleaner.

I'm new to Python, but still humbled by your amazing reply and code.

Thanks very much.

- O
Reply


Messages In This Thread
Recursive Call Going Elsewhere? - by Oliver - Jan-30-2018, 09:51 PM
RE: Recursive Call Going Elsewhere? - by Oliver - Jan-31-2018, 01:33 PM
RE: Recursive Call Going Elsewhere? - by snippsat - Jan-31-2018, 02:44 PM
RE: Recursive Call Going Elsewhere? - by DeaD_EyE - Jan-31-2018, 02:59 PM
RE: Recursive Call Going Elsewhere? - by Oliver - Jan-31-2018, 09:42 PM
RE: Recursive Call Going Elsewhere? - by DeaD_EyE - Feb-02-2018, 09:58 AM
RE: Recursive Call Going Elsewhere? - by Oliver - Feb-02-2018, 10:58 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Combine Two Recursive Functions To Create One Recursive Selection Sort Function Jeremy7 12 7,557 Jan-17-2021, 03:02 AM
Last Post: Jeremy7
  list call problem in generator function using iteration and recursive calls postta 1 1,978 Oct-24-2020, 09:33 PM
Last Post: bowlofred
  how to get around recursive method call Skaperen 10 4,380 Jul-01-2020, 10:09 PM
Last Post: Skaperen

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020