登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Q超越兔子的蜗牛O--逸云沙鸥Linux

飘飘何所似,天地一沙鸥;落霞与孤鹜齐飞,秋水共长天一色~~

 
 
 

日志

 
 

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

2010-12-15 11:33:06|  分类: Perl编程技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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;
  评论这张
 
阅读(3848)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018