Pkg.SevenZip — API for parsing 7z archives

Overview

The Pkg.SevenZip module contains the API for parsing 7z archives.

Parsing a 7z Archive

The following code example demonstrates how to parse a 7z archive:

from Pro.Core import *
from Pkg.SevenZip import *

def parse7zArchive(fname):
    c = createContainerFromFile(fname)
    if c.isNull():
        return
    obj = SevenZipObject()
    if not obj.Load(c) or not obj.ParseArchive():
        return
    n = obj.GetEntryCount()
    print(n)
    for i in range(n):
        entry = obj.GetEntry(i)
        if entry == None:
            break
        # skip directories
        if obj.IsDirectory(entry):
            continue
        print("file name:", entry.filename)
        # retrieves the file data as NTContainer
        fc = obj.GetEntryData(entry)

Module API

Pkg.SevenZip module API.

Classes:

SevenZipObject()

This class represents a 7z archive.

class SevenZipObject

Bases: Pro.Core.CFFObject

This class represents a 7z archive.

Methods:

DumpEntry(i, out)

Dumps information about an entry to a text stream.

GetEntry(i)

Retrieves an entry by its index.

GetEntryCount()

Returns the number of entries present in the archive.

GetEntryData(i)

Retrieves the data of an entry.

IsDirectory(i)

Checks whether an entry is a directory.

ParseArchive()

Parses the archive.

DumpEntry(i: int, out: Pro.Core.NTTextStream)None

Dumps information about an entry to a text stream.

Parameters
  • i (int) – The entry index.

  • out (NTTextStream) – The output text stream.

GetEntry(i: int)Any

Retrieves an entry by its index.

Parameters

i (int) – The entry index.

Returns

Returns the requested entry if successful; otherwise returns None.

Return type

Any

See also GetEntryCount().

GetEntryCount()int
Returns

Returns the number of entries present in the archive.

Return type

int

See also GetEntry().

GetEntryData(i: int)Pro.Core.NTContainer

Retrieves the data of an entry.

Parameters

i (int) – The entry index.

Returns

Returns the data if successful; otherwise returns an invalid container.

Return type

NTContainer

See also GetEntryCount().

IsDirectory(i: int)bool

Checks whether an entry is a directory.

Parameters

i (int) – The entry index.

Returns

Returns True if the entry is a directory; otherwise returns False.

Return type

bool

ParseArchive()bool

Parses the archive.

Returns

Returns True if successful; otherwise returns False.

Return type

bool