首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl读取PGM文件

Perl读取PGM文件
EN

Stack Overflow用户
提问于 2014-05-10 07:01:58
回答 1查看 451关注 0票数 0

我甚至很难用perl读取pgm文件。有人知道怎么做吗?(pgm文件是二进制版本,而不是ASCII)

这是我的代码,我试图只读取pgm文件的头部分:

代码语言:javascript
复制
#!/usr/bin/perl

open(TEST, "baboon.pgm") or die "can't open \n";

binmode(TEST);

while(<TEST>){
    if($counter<=7){
        chomp;
        print "$_ ";
        $counter++;
    }
    else{
        exit 0;
    }   
}

close(TEST);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-10 07:26:52

因为它是二进制的,所以文件中没有换行符。您可以使用slurp模式一次读取整个文件。查看pgm的规范,标题值由空格分隔,其中可以包括空格、换行符和制表符。我在使用regex解析它时遇到了漏洞,而且它似乎工作得很好。

这个例子应该让你开始..。

代码语言:javascript
复制
#!/usr/bin/perl

open(TEST, "baboon.pgm") or die "can't open \n";
binmode(TEST);
$/ = undef;  # Slurp mode!
my $data = <TEST>;
close(TEST);

$data =~ /(..)\s([\d]+)\s([\d]+)\s([\d]+)/; 
print "magic is $1\n";
print "width is $2\n";
print "heigh is $3\n";
print "maxval is $4\n";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23578141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档