您的位置:首页 > 其它

Perl 读写 .gz .tgz 等压缩文件

2010-12-24 16:37 627 查看
1. 使用PERL直接读取压缩文件 use pipe

.gz格式文件

1

open(FIN,"gzip -dc $infilename|") or die ("can not open $infilename/n");

.tgz(.tar.gz)格式文件

1

open(FIN,"tar -xf $infilename -o|") or die ("can not open $infilename/n");

7zip格式文件

1

open(FIN,"7za e -so $infilename|") or die ("can not open $infilename/n");

这个可以直接用
2. 用PerlIO包
1)在*.pl前加上

12

use lib "/libPath";
use PerlIO::gzip;

2)在用的时候:

12

open FI, "<:gzip", "$fi";
open FO, ">:gzip", "$fo";

3. 用 File::Package;

12
3
4
5
6
7
8
9
10
1112
13
14
15
16
17
18
19
20
2122
23
24

#!/usr/bin/perl -w
use strict;

use File::Package;

my $uut='Tie::Gzip';
my $fp='File::Package';
$fp->load_package($uut);

tie *GZIP,'Tie::Gzip';
my $gzip=/*GZIP;
open($gzip,"> test.gz");

while(my $line=<$gzip>){
chomp $line;
print"$line/n";
}
close $gzip;

tie *OUT,'Tie::Gzip';
my $out=/*OUT;
open($out,"> test.gz");
print $out "I want to know more!/n"
close $out;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: