问题标签 [bzip2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
137 浏览

python - 尝试将文件作为存档打开,否则作为常规文件读取

我正在尝试处理文件列表,其中每个文件可能是常规文本文件或 bz2 存档。

如何最有效地使用 try-except 块来尝试以适当的格式打开每个文件?我宁愿不检查文件的扩展名,因为这不能总是依赖(并且不是很 EAFP)。

目前我正在做:

我认为重复的for data in parse_lines(f): ...代码看起来是多余的,但我想不出办法摆脱它。有什么办法可以减少以前的,还是有另一种方法可以尝试“智能打开”文件?

编辑:可选跟进

什么是扩大检查格式数量的合适方法?例如,7zip 程序允许您右键单击任何文件并尝试将其作为存档打开(7zip 支持的任何文件)。使用当前的 try-except 块策略,即使只使用了几种格式,您似乎也会很快开始嵌套在块中,例如:

0 投票
1 回答
258 浏览

python - 在不保留压缩数据的情况下处理 gzipped 或 bzip2ed 下载

我想下载一个压缩文件(在 gzip 或 bzip2 中),解压缩并分析其内容(这是一个包含大量数据的类似 CSV 的文件,我计算某些列的总和、平均值等)同时下载发生(这样我就可以在下载结束之前显示部分结果)。文件很大(4GB),解压后的流更大,所以我不想将整个压缩文件保存在磁盘或内存中。

我认为可以将 python 的 gzip 或 bz2 实现与 urllib2 结合起来:

…但似乎 urlopen 的文件对于 GzipFile 来说不够像文件。尝试从这样的流中读取后,我得到了回溯:

BZ2 模块更糟糕——它根本不允许传递文件对象。

在寻找一些答案后,我发现了这个问题。答案基本上是将整个压缩文件存储在内存中,这对我来说是不可行的。

我能做些什么?

0 投票
2 回答
322 浏览

python - 读取bzip2文件时如何获取内部位置

我有一个脚本来解压缩和解析包含在一堆非常大的 bzip2 压缩文件中的数据。由于这可能需要一段时间,我想有一些方法来监控进度。我知道我可以使用 获取文件大小os.path.getsize(),但会bz2.BZ2File.tell()返回未压缩数据中的位置。有什么方法可以获取未压缩文件中的当前位置,以便我可以监控进度?

如果有一个等效于 Java 的 python ,则可以加分ProgressMonitorInputStream

0 投票
1 回答
1253 浏览

linux - 提取压缩的 tar 文件时是否需要指定压缩级别?

从我目前在 OSX 10.8 和 CentOS 5.5 上的测试来看,它看起来像是tar自动推断出存档的压缩类型,即我可以做tar -xf <compressed archive>而不是做tar -jxf <bzip2 compressed archive>or tar -zxf <gzip compressed archive>

我想知道我是否可以依赖 tar 的这个自动压缩检测功能,还是这个功能是新的?

这些是我玩过的 tar 版本。

OSX 10.8——bsdtar 2.8.3——libarchive 2.8.3

CentOs 5.5 -- 焦油 (GNU 焦油) 1.15.1

谢谢,

0 投票
1 回答
3212 浏览

python - 如何为 Python 安装手动传递 bzip2 安装源?

我经历了几个关于 Python 和 bzip2 的 StackOverflow 问题。这些对于让我达到我现在清楚的状态非常有帮助。这是我到目前为止所做的以及我遇到的问题:

  • 没有root 访问权限,无法安装 libbz2-dev(el)
  • /usr/bin/bzip2 是版本 1.0.3
  • /usr/bin/python 是 2.4.3 版本
  • GNU Stow被用于管理类似于 homebrew 工作方式的库

我需要 Python 2.7.3 与 bzip2 模块一起安装,以便从源代码正确编译 node.js。是的,我很抱歉,但我确实必须从源头作为普通用户完成所有这些工作。

我已经从源代码安装了 bzip2,如下所示:

我先在我的 PATH 中存放了根目录,所以这导致:

这表明在我的 PATH 中使用了正确的 bzip2。

接下来,我继续从源代码编译 Python 并运行以下命令:

在源代码配置期间告诉 Python 安装 bzip 1.0.6 库的源代码所在的正确方法是什么,以便它能够检测到 bzip2 开发头文件并正确安装模块?

0 投票
0 回答
1048 浏览

c# - 使用 SevenZipSharp 解压 bzip2 文件,在文件中添加一个不必要的 tar 扩展名,并且无法获得正确的存档信息?

使用以下代码将 bzip2 文件提取到指定目录:

,但是我在目标目录中有一个文件,其中添加了 .tar,如果我删除最后一个扩展名,该文件是正确的。但是从提取器返回的存档文件是“[no name]”而不是存档文件名,似乎它没有从源文件中获取存档文件信息。这是一个错误,有什么想法吗?

0 投票
2 回答
1685 浏览

php - PharData::extractTo 将文件提取为什么文件格式?

我正在使用extractToPHPPharData类的方法来检查 phar 文件的内容并遇到了一些 strage 结果。我已经达到了我的字节级侦探工作的极限,希望这里有人能够帮助我解决这个问题。

详细信息如下,但一般来说:当我用 提取我的存档文件时PharData::extractTo,我得到的文件似乎是一个变体bzip,但bzip2命令不喜欢它们。这是正常phar行为,还是特定存档有问题?(或者可能是我正在使用的 PHP/OS 组合)。有没有办法从 phar 存档中获取纯文本文件 - 或者纯文本应该是默认的,我正在寻找奇怪的系统行为?

具体来说,当我运行命令时

在我的 OS 10.6.8 上,基于 Intel 的 Mac 使用内置的 PHP 5.3.6,存档成功解压到 /tmp/n98-magerun 文件夹中。

在此处输入图像描述

我提取的档案可以在这里找到

如果我打开在 BBEdit 中提取的任何文本文件,我会看到正确的内容。

在此处输入图像描述

但是,如果我使用其他工具,例如 quicklook vi、 或cat,我会看到二进制数据。我在尝试ack/grep通过文件内容时注意到了这一点,但没有得到预期的结果。

在此处输入图像描述

如果我file在文件上使用命令,它会报告它是一个bzip文件。

并使用十六进制编辑器检查文件确认文件以BZ标题开头

在此处输入图像描述

但是,尝试解压缩文件bzip2会导致以下错误

我可以bzcat成功地文件,尽管它在文件中间用这个

0 投票
1 回答
1645 浏览

python - 将 bz2 压缩二进制文件导入为 numpy 数组

我有一个包含数据数组的 bz2 压缩二进制(大端)文件。使用外部工具解压缩,然后将文件读入 Numpy 可以:

但是,由于有很多其他类似的文件,我无法事先单独提取每个文件。因此,我在 Python 中找到了 bz2 模块,它可能可以直接在 Python 中解压它。但是我收到一条错误消息:

显然,BZ2File 函数不返回文件对象。你知道读取压缩文件的正确方法是什么吗?

0 投票
2 回答
101 浏览

perl - 在 Perl 中捕获 BZIP2 终止

这是我到目前为止所拥有的:

基本上,如果它决定终止,则在进行 bzip 压缩时:

它会立即从失败的地方拾取并继续前进,但是我没有打印出错误,$Bzip2Error所以我很茫然。如何捕获 bzip2 失败的事件?

谢谢!

0 投票
1 回答
559 浏览

python - Python bz2 - 文本与交互式控制台(数据流)

我之前使用 bz2 尝试解压缩输入。我想要解码的输入已经是压缩格式,所以我决定将格式输入到交互式 Python 控制台中:

这工作得很好,没有任何错误。但是,当我尝试从 html 文件中提取文本然后解压缩时,得到了不同的结果:

我检查了我用原始字符串解析的字符串,它看起来一模一样。此外,当我将要解压缩的字符串复制并粘贴到我的 .py 文件中时(基本上用双括号“”括起来),它可以正常工作。我还尝试使用“rb”打开,希望它将 .html 文件视为二进制文件,尽管这也无法正常工作。

我的问题是:这两个字符串有什么区别?它们都是'str'类型,所以我假设我缺少一个潜在的差异。此外,我将如何从 .html 中检索 bz2 内容,使其不会被视为不正确的数据流?任何帮助表示赞赏。谢谢!