我知道有一个名为pylzma的模块.但它只支持lzma,而不支持lzma2.
我目前的解决方案是subprocess.call()用来调用7z程序.
有没有更好的办法?
尝试解码 LZMA 压缩 xls 文件时出现org.tukaani.xz.UnsupportedOptionsException:未压缩大小太大错误。而非 LZMA 文件可以毫无问题地解压/解码。这两种情况都压缩相同的 xls 文件。
我正在使用 Apache commons compress 和 org.tukaani.xz。
示例代码供参考
package com.concept.utilities.zip;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipFile;
import org.apache.commons.compress.compressors.lzma.LZMACompressorInputStream;
public class ApacheComm {
public void extractLZMAZip(File zipFile, String compressFileName, String destFolder) {
ZipFile zip = null;
try {
zip = new ZipFile(zipFile);
ZipArchiveEntry zipArchiveEntry = zip.getEntry(compressFileName);
if (null != zipArchiveEntry) {
String name = zipArchiveEntry.getName();
// InputStream is = zip.getInputStream(zipArchiveEntry);
InputStream israw = zip.getRawInputStream(zipArchiveEntry);
LZMACompressorInputStream lzma = …Run Code Online (Sandbox Code Playgroud) 我正在使用Python 3.6,目前我将子处理到我的7zip程序以获得我需要的压缩.
subprocess.call('7z a -t7z -ms=off {0} *'.format(filename))
我知道zipfile类有'ZIP_LZMA'压缩,但我传递的应用程序也说输出文件不正确.那么还有什么我需要添加到ZipFile类来使它模仿上面的命令?
我正在寻找一种方法来获取使用xz实用程序压缩的LZMA2/.xz文件的未压缩流大小.
我正在使用Windows/Linux的liblzma来完成这项任务,所以我想我正在寻找liblzma中的一些C/C++ API来实现这个目的.
我正在尝试使用LZMA SDK压缩程序中的文件.我已下载SDK但我不知道如何使用它.谁能告诉我需要采取哪些步骤来完成这项工作?任何帮助将受到高度赞赏
我几乎是C和C++世界的新手
Delphi中是否有任何库来处理LZMA(或7zip)文件,包括创建自解压EXE文件
在(c ++ java c#)中的7zip.org中有一些源代码,但我希望在delphi中使用它们
但是我想要独立的东西(没有DLL)
我以为这应该是开箱即用的,但是......
我已将 pip.log 粘贴到Pastbin上 ,最后几行错误消息是
e:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWITH_COMPAT=1 -DCOMPRESS_MF_MT=1 -Isrc/sdk -IC:\Python27\include -IC:\Python27\PC /Tcsrc\7zip\C\AesOpt.c /Fobuild\temp.win-amd64-2.7\Release\src\7zip\C\AesOpt.obj /MT
cl : Command line warning D9025 : overriding '/MD' with '/MT'
AesOpt.c
src\7zip\C\AesOpt.c(14) : fatal error C1083: Cannot open include file: 'wmmintrin.h': No such file or directory
error: command '"e:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe"' failed with exit status 2
Run Code Online (Sandbox Code Playgroud)
通过google搜索我发现wmmintrin.h是vc 10.0附带的标头之一,我已经安装了Visual Studio 2010(包含vc 10.0),我需要做的是复制这个文件吗?
pip install 不是应该简单无痛吗?
编辑:我尝试将此文件复制到 vc9 的包含路径中,但遇到了几个不同的错误 …
import sys
import os
import zlib
try:
import pylzma as lzma
except ImportError:
import lzma
from io import StringIO
import struct
#-----------------------------------------------------------------------------------------------------------------------
def read_ui8(c):
return struct.unpack('<B', c)[0]
def read_ui16(c):
return struct.unpack('<H', c)[0]
def read_ui32(c):
return struct.unpack('<I', c)[0]
def parse(input):
"""Parses the header information from an SWF file."""
if hasattr(input, 'read'):
input.seek(0)
else:
input = open(input, 'rb')
header = { }
# Read the 3-byte signature field
header['signature'] = signature = b''.join(struct.unpack('<3c', input.read(3))).decode()
# Version
header['version'] = read_ui8(input.read(1))
# File size …Run Code Online (Sandbox Code Playgroud) 尝试使用 pyenv 在 macOS 上构建 python 版本,但我所做的每次安装都以
? python
>>> import lzma
ModuleNotFoundError: No module named '_lzma'
Run Code Online (Sandbox Code Playgroud)
我已经安装了以下所有软件包:
brew install openssl readline sqlite3 xz zlib
xcode-select --install
Run Code Online (Sandbox Code Playgroud)
唯一需要注意的是 homebrew 将软件包安装到~/.brew.
任何意见都会受到赞赏。
我已经使用.bz2文件很长时间了。要将.bz2文件解压缩/解压缩到特定文件夹中,我一直在使用以下功能:
destination_folder = 'unpacked/'
def decompress_bz2_to_folder(input_file):
unpackedfile = bz2.BZ2File(input_file)
data = unpackedfile.read()
open(destination_folder, 'wb').write(data)
Run Code Online (Sandbox Code Playgroud)
最近,我获得了带有.xz(不是.tar.xz)和.zst扩展名的文件的列表。我较差的研究技能告诉我,前者是lzma2压缩,后者是压缩Zstandard。
但是,我找不到将这些档案的内容解压缩到一个文件夹中的简单方法(就像我对这些文件所做的那样.bz2)。
我怎么能够:
.xz(lzma2)文件的内容解压缩到文件夹中吗?.zst(Zstandard)文件的内容解压缩到文件夹中吗?重要说明:我正在解压缩非常大的文件,因此,如果该解决方案考虑到任何潜在的Memory Errors,那就太好了。