博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Perl基础学习04之IO及读写操作
阅读量:387 次
发布时间:2019-03-05

本文共 1608 字,大约阅读时间需要 5 分钟。

目录


Perl中IO操作

  • print say printf sprintf区别

  • print

不自带\n;

  • say

自带\n,必须结合use 5.010才能使用;

  • printf

格式化输出字符串;

  • sprintf

只格式化,无print功能。

  • Perl格式化输出

Perl主要使用printf及sprintf格式化输出

printf sprintf常用格式符

格式符    	含义%%        	百分号%s        	字符串%d        	整型数字%f        	浮点型数字%e        	科学计算法

%s %d %f %e可以设置显示字符宽度,补位字符(字符宽度不够时用于补齐的字符),小数位数。

  • I/O实例,格式化实例

例如,print1.pl

#!/usr/bin/perluse strict;use warnings;use 5.010;#printprint "hah\n";#saysay "hah1";#say自带\n,必须使用use 5.010#printfprintf "hah2\n";#%dprintf "%d\n", 3.1415126;#输出整型,3#输出整型,字符宽度为10,向右对齐,宽度不足用0补齐,默认用空格补齐printf "%010d\n", 3.1415126;#%fprintf "%010.2f\n", 3.1415126;#%010.2f#0      设置字符宽度补齐字符#10     设置字符宽度为10#.2     设置显示2位小数#f      输出浮点型#%%printf "%d%%\n", 3.1415126;#输出百分号#%eprintf "%010.3e\n", 23450000;#%s#输出字符串,字符宽度为10,向右对齐,宽度不足用0补齐,默认用空格补齐printf "%010s\n", "haha";#sprintfmy $result = sprintf("%010d",3.1415126);#()内方法类似于printfprint "$result\n";

perl print1.pl

hah

hah1

hah2

3

0000000003

0000003.14

3%

000000haha

0000000003


Perl中读写文件操作

借助open函数,文件句柄(file handle)实现,具体见下文实例。

例如,in1.pl

#!/usr/bin/perluse strict;use warnings;my $infile=$ARGV[0];#open 句柄, <, 待读入文件;open IN,"<",$infile;while (
){ chomp; next if(/^#/); next if(/^$/); my @t=split /\t/,$_; my $outfile=$ARGV[1]; #open 句柄, >(覆盖写入)或者>>(追加写入), 待写入文件; open OUT,">>",$outfile; print OUT "$.\t$t[0]\n";#OUT绑定待写入句柄 close OUT;#关闭句柄OUT}close IN;#关闭句柄IN

perl in1.pl infile.txt outfile.txt

cat infile.txt#输入文档infile.txt

#testfile

a11 a12:a13 a14

a21 a22 a23

 

a31 a32 a33

 

cat outfile.txt#输出文档outfile.txt

2 a11

3 a21

5 a31


参考文献:

我的公众号

分享数据科学和生物信息方向。

转载地址:http://jbmwz.baihongyu.com/

你可能感兴趣的文章