The code in my last email that I stated worked, is doing exactly what I want (perhaps there is a better method, but this is working)<br><br>The slash detection is for the subdirectories located inside of a zip file. The name list for a file located inside a zipped folder shows up as folder/file.ext in windows, and folder\file.ext in linux.. so I was accounting for both. I dont think your method 
os.path.split() would work since there isn't a fully qualified path coming from the namelist. <br><br>I like this little snip of code from your suggestion, and I may incorporate it...<br><br>for ext in ['.cap', '.hex', '.fru', '.cfg']:
<br> &nbsp; &nbsp; &nbsp; &nbsp; if aFile.lower().endswith(ext):<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return True<br><br>Just for sake of sharing.. here is my entire method.. <br><br>def extractZip(filePathName):<br>&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;<br>&nbsp;&nbsp;&nbsp; This method recieves the zip file name for decompression, placing the
<br>&nbsp;&nbsp;&nbsp; contents of the zip file appropriately.<br>&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;<br>&nbsp;&nbsp;&nbsp; if filePathName == &quot;&quot;:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;No file provided...\n&quot;<br>&nbsp;&nbsp;&nbsp; else:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if filePathName[0] == '&quot;': # If the path includes quotes, remove them.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zfile = zipfile.ZipFile(filePathName[1:-1], &quot;r&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else: # If the path doesn't include quotes, dont change.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zfile = zipfile.ZipFile(filePathName, &quot;r&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for afile in 
zfile.namelist(): # For every file in the zip.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # If the file ends with a needed extension, extract it. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if afile.lower().endswith('.cap') \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or afile.lower().endswith('.hex') \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or afile.lower().endswith('.fru') \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or afile.lower().endswith('.sdr') \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or afile.lower().endswith('.cfg'):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if &quot;/&quot; in afile:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aZipFile = 
afile.rsplit('/', 1)[-1] # Split file based on criteria.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile = open(aZipFile, 'w') # Open output buffer for writing.<br>&nbsp;&nbsp;&nbsp;&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>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.close() # Close the output file buffer.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elif &quot;\\&quot; in afile:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aZipFile = afile.rsplit('\\', 1)[-1] # Split file based on criteria.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile = open(aZipFile, 'w') # Open output buffer for writing.
<br>&nbsp;&nbsp;&nbsp;&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.close() # Close the output file buffer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile = open(afile, 'w') # Open output buffer for writing.
<br>&nbsp;&nbsp;&nbsp;&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.close() # Close the output file buffer.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Resource extraction completed successfully!\n&quot;<br>
<br>Not to go on and bore people with my project, the goal of this application (which is nearly done) is to take several zip files that I've prompted the user to drag and drop into the console, extract the necessary peices, add a few more files, change some lines within a couple of the files extracted, then pack it all back into one single zip... At this point, my little script is doing everything other then the file i/o for changing the lines inside the couple files needed (which I'll probably have done tomorrow if I have time at work). The script does a little more then that, like sets up a file structure and some menu's for the user, but essentially I've explained it... and it takes about a 20-45minute job and chops it into less then 30 seconds.. And considering I run through this process sometimes dozens of times a day, that time adds up fast.. Hopefully I can work on getting better at coding python with my newly earned time =D
<br><br>The flow of the script is a little odd because I had to make it extensible by basically copying a method for a specific package I'm trying to build and modifying to suite.. but.. once I'm fully done, this script should let me add an entire new type of zip package within minutes. 
<br><br>Again, thanks to all of you for your input and suggestions. <br><br><br><div><span class="gmail_quote">On 10/15/06, <b class="gmail_sendername">Bill Burns</b> &lt;<a href="mailto:billburns@pennswoods.net">billburns@pennswoods.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; After getting some sleep and looking at my code, I think I was just to
<br>&gt; tired to work through that problem =P<br>&gt;<br>&gt; Here is my fully working and tested code..<br>&gt; Thanks to you all for your assistance!<br>&gt;<br>&gt; if &quot;/&quot; in afile:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; aZipFile = afile.rsplit
('/', 1)[-1] # Split file based on criteria.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; outfile = open(aZipFile, 'w') # Open output buffer for writing.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; outfile.write(zfile.read(afile)) # Write the file.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; outfile.close () # Close the output file buffer.
<br>&gt; elif &quot;\\&quot; in afile:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; aZipFile = afile.rsplit('\\', 1)[-1] # Split file based on criteria.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; outfile = open(aZipFile, 'w') # Open output buffer for writing.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; outfile.write
(zfile.read(afile)) # Write the file.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; outfile.close() # Close the output file buffer.<br>&gt; else:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; outfile = open(afile, 'w') # Open output buffer for writing.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; outfile.write(zfile.read
(afile)) # Write the file.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; outfile.close() # Close the output file buffer.<br><br>Somewhere along the way, I got lost ;-) Why are you messing with the<br>slashes (&quot;/&quot; &amp; &quot;\\&quot;)?<br><br>If you're trying to split a path and filename, then your best bet is
<br>'os.path.split()'.<br><br>For Example:<br><br>&gt;&gt;&gt; import os<br>&gt;&gt;&gt; s = '/some/path/to/file.txt'<br>&gt;&gt;&gt; path, filename = os.path.split(s)<br>&gt;&gt;&gt; path<br>'/some/path/to'<br>&gt;&gt;&gt; filename
<br>'file.txt'<br><br>'os.path.split()' works equally as well for paths containing &quot;\\&quot;.<br><br>I have some code below which I *think* does what you want..... read a<br>zip file and 'write out' only those files with a certain file extension.
<br>The directory structure is *not* preserved (it just writes all files to<br>the current working directory).<br><br>It has a little helper function 'myFileTest()' which I think makes<br>things easier ;-) The function tests a file to see if meets our
<br>extension criteria.<br><br>HTH,<br><br>Bill<br><br>&lt;code&gt;<br>import zipfile<br>import os<br><br># This is what I did for testing. Change it to point<br># to your zip file...<br>zip = zipfile.ZipFile('test.zip', 'r')
<br><br>def myFileTest(aFile):<br>&nbsp;&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;myFileTest(aFile) -&gt; returns True if input file<br>&nbsp;&nbsp;&nbsp;&nbsp; endswith one of the extensions specified below.<br>&nbsp;&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp; for ext in ['.cap', '.hex', '.fru', '.cfg']:
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if aFile.lower().endswith(ext):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return True<br><br>for aFile in zip.namelist():<br>&nbsp;&nbsp;&nbsp;&nbsp; # See if the file meets our criteria.<br>&nbsp;&nbsp;&nbsp;&nbsp; if myFileTest(aFile):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Split the path and filename.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path, filename = os.path.split(aFile)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Don't overwrite an existing file.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not os.path.exists(filename):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Write out the file.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile = open(filename, 'w')
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.write(zip.read(aFile))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile.close()<br>&lt;/code&gt;<br><br><br><br><br></blockquote></div><br>