![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(Chilkat2-Python) Unzip One File to a StreamDemonstrates how to unzip a particular file contained within a .zip archive to a Chilkat stream.
import sys import chilkat2 # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. zip = chilkat2.Zip() # First open a .zip. success = zip.OpenZip("qa_data/hamlet.zip") if (success != True): print(zip.LastErrorText) sys.exit() # Find the entry to be unzipped to a stream.. # entry is a CkZipEntry entry = zip.FirstMatchingEntry("*hamlet.xml") if (zip.LastMethodSuccess != True): print(zip.LastErrorText) sys.exit() # There are three ways we can unzip (inflate) to a stream. # # 1) Set a sink file on the stream object and call UnzipToStream synchronously. # This unzips to the stream's sink (which is to simply unzip to a file in the filesystem). # # 2) Create a stream object and call UnzipToStreamAsync. This starts the unzip in a background # thread (after Task.Run is called). Your application can then read the unzipped (inflated) file # directly from the stream. # # 3) (not shown in this example) Unzip to a stream object that is the source of something else. # # ---------------------------------------------------------------- # Case 1: Unzip to a file by setting the sink of streamA to a file. streamA = chilkat2.Stream() streamA.SinkFile = "qa_output/hamletA.xml" success = entry.UnzipToStream(streamA) if (success != True): print(entry.LastErrorText) sys.exit() # Close the stream to close the output file. success = streamA.WriteClose() # ---------------------------------------------------------------- # Case 2a: Uzip to a stream asynchronously. streamB = chilkat2.Stream() # unzipTask is a CkTask unzipTask = entry.UnzipToStreamAsync(streamB) if (entry.LastMethodSuccess != True): print(entry.LastErrorText) sys.exit() # Start the background unzip thread. unzipTask.Run() # Read the stream. (this is reading the unzipped file data) sb = chilkat2.StringBuilder() while streamB.EndOfStream != True : # Each call to ReadSb appends to the contents of sb. streamB.ReadSb(sb) sb.WriteFile("qa_output/hamletB.xml","utf-8",False) print("Success.") # ---------------------------------------------------------------- # Case 2b: Uzip to a stream asynchronously and emit output while reading. streamC = chilkat2.Stream() # unzipTask is a CkTask unzipTask = entry.UnzipToStreamAsync(streamC) if (entry.LastMethodSuccess != True): print(entry.LastErrorText) sys.exit() unzipTask.Run() while streamC.EndOfStream != True : s = streamC.ReadString() print(s) print("Success.") |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.