- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Perl 编程新手。
我有一个 8GB 的 zip 文件,其中包含数据文件和元数据文件。目标是读取元数据文件的内容以与 zip 中的数据文件名进行比较。
当前的实现是使用IO::Uncompress::Unzip
,读取元数据文件~60KB需要太长时间(~15分钟)。
我使用 Archive::Zip::MemberRead
创建了一个 PoC 脚本,从同一文件中提取信息,并且执行速度非常快(以秒为单位)。
我担心在我的场景中使用 Archive::Zip 是否存在任何限制。
最佳答案
@MiguelPrz: in my script, there is step walkthrough to zip file to retrieve member name and size and it quite fast. And next step is read the content of metadata file, by using unzip with specified file name, it very slow. –Le Vu
无需调用unzip
-- 您可以使用 IO::Uncompress::Unzip
直接访问元数据文件。
这是一个快速运行的示例,它将检查名为 metadata.txt
的成员的 zip 文件。 。如果找到,它将把内容读入内存并打印出来。
首先创建一个测试 zip 文件,其中包含名为 metadata.txt
的成员.
$ echo abc >metadata.txt
$ zip test.zip metadata.txt
adding: metadata.txt (stored 0%)
现在有一些代码遍历 zip 文件并检查元数据成员。
#!/usr/bin/perl
use strict;
use warnings;
use IO::Uncompress::Unzip qw($UnzipError);
my $zipfile = "test.zip";
my $u = IO::Uncompress::Unzip->new( $zipfile )
or die "Cannot open $zipfile: $UnzipError";
my $status;
for ($status = 1; $status > 0; $status = $u->nextStream())
{
my $name = $u->getHeaderInfo()->{Name};
warn "Processing member $name\n" ;
if ($name eq 'metadata.txt')
{
local $/;
my $data = <$u>;
print "METADATA is [$data]\n";
}
last if $status < 0;
}
die "Error processing $zipfile: $!\n"
if $status < 0 ;
当我运行时,我得到这个输出
$ perl testzip.pl
Processing member metadata.txt
METADATA is [abc
]
[全面披露——我是 IO::Uncompress::Unzip
的作者]
关于perl - Archive::Zip 和 IO::Uncompress::Unzip 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71866348/
有没有办法从 archive.org 上传或触发自己网站的快照到 WayBackMachine?我已经检查了常见问题解答和 archive.org API,但找不到任何使用脚本触发此问题的方法。 最佳
在我当前的项目中,我正在集成 RestKit 库(我不知道它是否重要),当我使用编译器提示的“存档”时尝试交付应用程序进行测试 "RestKit/RestKit.h" is not found 在构
在我的项目开始时,有两个 terraform 模块:base 和 reusable_module。 base/main.tf # Provide abstraction to define a lam
我试图弄清楚如何以正确的方式构建我的 Cocoa 应用程序的发布版本。 到目前为止,我已经使用了 为归档而构建 选项,并从 Xcode 的 DerivedData 文件夹深处获取应用程序包。 今天我试
我有一个 Swift 语言的 iOS 项目,我必须在终端上使用命令创建存档和 .ipa。 我正在使用 Github 操作在试飞中上传 iOS 版本。 我正在遵循此链接中提到的所有说明: https:/
我正在使用 GCC 从两个 *.a(静态库)创建一个共享对象库。我引用了这些文章: How to force gcc to link an unused static library How to i
我的应用程序突然停止创建 iOS App Archive,而是开始创建 Xcode Generic Archive。 这是在为我的应用程序的新版本进行更改后发生的,我添加了逻辑、UI 更改和一些新框架
我有一个包含大约 800 个 .tgz 文件的目录,每个文件包含大约 10 个文件。实际上,我想将每个存档转换为同名目录。是否有一个简单的一行命令来执行此操作,还是我应该编写一个脚本? 最佳答案 自
在 gcc 中使用 -Wl--whole-archive ... -Wl--no-whole-archive 标志时,您如何验证库内部的所有内容都正确链接?另外,您如何验证该库是否可以调用由 LD_L
我有一个用 Swift 编写的小型命令行应用程序,现在我想将其归档。然而,像我之前的许多其他人一样,我遇到了如何将 Archive Type 从 Generic Xcode Archive 更改为 M
我不确定是否应该对 .emacs.d 下的以下文件进行版本控制: [lucas@lucas-ThinkPad-W520]/home/lucas/.emacs.d$ file elpa/archives
我正在处理 Postgres DVD tutorial并且在导入示例数据库时遇到问题。 运行 pg_restore -U postgres -d dvdrental ~[filepath]/dvd-d
注意: Boost 的存档方案基于对称的输入和输出存档类。一直写这两者很乏味,所以我将使用 ?archive 来表示 oarchive 和 iarchive。 总结: 将自定义存档的基类从 binar
是否可以使用 Node.js 流构建一个 zip 存档,并在创建时通过对 HTTP GET 请求的响应将该 zip 存档提供给客户端/用户?我正在寻找一种最好避免将整个 zip 缓冲到服务器内存中的解
我正在尝试使用 XCODE 4.3.1 发布一个临时 ipa。归档我的 iOS 应用程序时,我可以在管理器中看到归档类型是“Mac App Archive”,虽然我知道它应该是“iOS App Arc
我正在参加 Udacity 的类(class),该类(class)要求我在我的系统上设置虚拟机。我已经下载并安装了 Virtual Box 和 Vagrant。当我尝试运行命令 vagrant up
我试图找到一个很好的例子来说明如何使用这些二进制宽字符版本的 boost 序列化内容。我拼凑了一些代码来尝试让它工作,但不幸的是,我在尝试编译它时遇到了链接器错误的轰炸。 这是我的代码,以防我做任何明
目标与问题 我在 IntelliJ 中创建了一个 Java 程序。我按照说明将其构建为 .jar 文件 here 。当我尝试运行它时,它给出以下输出: Parameters: archive-name
我已包含在 hector-core-1.1-2 文件夹中找到的所有 jar。还有其他我没有包含的 jar 吗?我尝试过的事情。1)清除netbeans缓存2)下载org.apache.xbean.fi
我正在尝试打开包含创建数据库和 INSERT 语句的 PostgreSQL 的 SQL 脚本(.sql 文件),但是当我尝试使用 PgAdmin 4 恢复数据库时,它给我错误提示“pg_restore
我是一名优秀的程序员,十分优秀!