I was using afile.split(&quot;/&quot;), but I'm not sure how to impliment it... <br><br>if &quot;/&quot; in afile: (for some reason I can't add 'or &quot;\&quot; in afile' on this line)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile = open(afile, 'w') # Open output buffer for writing. (to open the file, I can't split here)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.write(zfile.read(afile)) # Write the file. (zfile.read(afile)) wont work if I split here...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.close() # Close the output file buffer.<br><br><div><span class="gmail_quote">
On 10/14/06, <b class="gmail_sendername">Kent Johnson</b> &lt;<a href="mailto:kent37@tds.net">kent37@tds.net</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Chris Hengge wrote:<br>&gt; Ok, last problem with this whole shebang...<br>&gt;<br>&gt; When I write the file from the zip, if it is in a subfolder, it will<br>&gt; error..<br>&gt; The code below will detect if the file in contained inside a directory
<br>&gt; in the zip, but I just want it to write it like it wasn't.<br>&gt; Another words<br>&gt;<br>&gt; Zipfile.zip looks like this<br>&gt; file.ext<br>&gt; file2.ext<br>&gt; folder/<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anotherfile.ext<br>&gt;
<br>&gt; file.ext extracts fine, file2.ext extracts file.. but it see's the last<br>&gt; file as folder/anotherfile.ext and it can't write it.. I tried to figure<br>&gt; out how to use .split to get it working right.. but I'm not having any
<br>&gt; luck.. Thanks.<br>&gt;<br>&gt; for afile in zfile.namelist(): # For every file in the zip.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # If the file ends with a needed extension, extract it.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if afile.lower().endswith('.cap') \
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or afile.lower().endswith('.hex') \<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or afile.lower().endswith('.fru') \<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or afile.lower().endswith('.cfg'):<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if afile.__contains__(&quot;/&quot;):<br><br>
This should be spelled<br>&nbsp;&nbsp; if &quot;/&quot; in afile:<br><br>__contains__() is the method used by the python runtime to implement<br>'in', generally you don't call double-underscore methods yourself.<br><br>I think you want
<br>&nbsp;&nbsp; afile = afile.rsplit('/', 1)[-1]<br><br>that splits afile on the rightmost '/', if any, and keeps the rightmost<br>piece. You don't need the test for '/' in afile, the split will work<br>correctly whether the '/' is present or not.
<br><br>If you are on Windows you should be prepared for paths containing \ as<br>well as /. You can use re.split() to split on either one.<br><br>Kent<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile = open(afile, 'w') # Open output buffer for
<br>&gt; writing.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.write(zfile.read(afile)) # Write the file.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.close() # Close the output file buffer.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile = open(afile, 'w') # Open output buffer for
<br>&gt; writing.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.write(zfile.read(afile)) # Write the file.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.close() # Close the output file buffer.<br><br><br></blockquote></div><br>