[Tutor] Unzipping a Zip of folders that have zips within them that I'd like to unzip all at once.
Oscar Benjamin
oscar.j.benjamin at gmail.com
Sun Sep 23 23:29:55 CEST 2012
On Sep 21, 2012 8:10 PM, "Gregory Lund" <gnj091405 at gmail.com> wrote:
> print zipContents
>
> z.close
You need to have round brackets to actually call the close method, i.e.:
z.close()
> ----------------------------------------
>
> It works, I get the following in the Python Shell:
>
> '>>> ================================ RESTART
================================'
>
> '>>>'
>
> ['Lab_2/aforker/', 'Lab_2/aforker/aforker_Lab2.zip',
> 'Lab_2/allisw99/', 'Lab_2/allisw99/allisw99_Lab2.zip',
> 'Lab_2/allisw99/allisw99_Lab2_Bonus.pdf', 'Lab_2/allisw992/',
> 'Lab_2/allisw992/allisw99_Lab2_Bonus.pdf', 'Lab_2/btaylor7/',
> 'Lab_2/btaylor7/2nd_btaylor7_Lab2.zip',
> 'Lab_2/btaylor7/btaylor7_Lab2.zip', 'Lab_2/']
Did you mean to have the paths of folders (e.g. 'Lab_2/aforker') in the
same list as the paths of zip-files (e.g. 'Lab_2/aforker/aforker_Lab2.zip')?
>
> '>>> '
>
> But, what I can't figure out is how to get 'into' each unique folder:
> aforker, allisw99, etc. and then extract any and all zips within
> 'aforker', 'allisw99', etc.
>
> I have no doubt that the suggestions posted here will work, but they
> all seem to get away from a single .py file and....
> a) I can't get them to work, and
> b) it doesn't really help me because I need ONE stand alone .py file
> to make this all work in ArcGIS.
I don't know what ArcGIS is but if it runs Python then I'm sure that it can
be done with a stand alone .py file.
>
> I will be using this to create an ArcGIS 'tool' that requires one
> script (at least for me to comprehend it) :-)
>
> Thank you in advance for any and all suggestions, tips etc.
>
> For the record, I did try the following (to at least try
> something....) at the bottom of the code above:
> -----------------------
>
> for item in zipContents:
> itemLoc = os.path.join(outDir,item)
> y = zipfile.ZipFile(itemLoc,'a')
> y.extractall(os.path.aplit(itemLoc)[0])
> y.close
> ------------------------
>
> but I get the following error:
>
> Traceback (most recent call last): File
> "D:\D_Drive_Documents\Scripts\Unzip_a_zip_of_zips\Scripts\unzip_a_zip.py",
> line 50, in y = zipfile.ZipFile(itemLoc,'a') File
> "C:\Python26\ArcGIS10.0\lib\zipfile.py", line 687, in init self.fp =
> open(file, modeDict[mode]) IOError: [Errno 13] Permission denied:
> 'D:\D_Drive_Documents\Student_Work_Sample_usecopy1\Lab_2/aforker/'
You're trying to open the directory as if it were a zipfile. You should
pass in the path to a zipfile not to a folder.
Also you're opening the files in append mode 'a'. I think you really want
read-only mode 'r'.
>
> I guess my first issue is to resolve the 'Permission denied' problem.
> And, I know I need an 'if' statement, somehow...
Remove the folder paths from the list of paths.
Oscar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20120923/afcb43f6/attachment.html>
More information about the Tutor
mailing list