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

原文来自:http://qyiyunso.blog.163.com/blog/static/350776862010111511336701/

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前加上

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


2)在用的时候:

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

3. 用 File::Package;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值