#!usr/bin/perl-w
use strict;
my $file_name;#文件名
my $num_1;
my $num_2;
my $num_3;
my $num_4;
my @result=qw//;
my $sum = 0;
my $print_line;#写文件名以及数据处理结果
my $dir_tree = "file_data";#文件夹名
my $file;
my $c_flg1;
my $c_flg2;
my $fi_line;
opendir DR,"$dir_tree" or die "can't open $dir_tree: $!";#打开文件夹
# my @file = readdir DR;
my @file = readdir(DR);#读取文件名到列表中
print "@file";
open (out_file,">","out_file.txt");#打开输出结果文件
foreach $file ( @file ){$c_flg1 = 0;$c_flg2 = 0;print "$file\n";if( $file =~/\.\.?$/ ){#跳过.和..print "next";next;}open (in_file,"<","$dir_tree\\$file")||die "Can't open $dir_tree\\$file: $!";#打开文件,win下用\# open (out_file,">","out_file.txt");while( <in_file> ){if( /^e.*dn:.(-?\d+\.?\d+)\s+(-?\d+\.?\d+)$/g ){#匹配$num_1 = $1;print "num_1 $num_1\n";$num_2 = $2;$c_flg1 =1;print "num_2 $num_2\n";} if( /^e.*up:.(-?\d+\.?\d+)\s+(-?\d+\.?\d+)$/g ){$num_3 = $1;print "num_3 $num_3\n";$num_4 = $2;$c_flg2 = 1;print "num_4 $num_4\n"; } }if( $c_flg1 == 1 && $c_flg2 == 1 ){#做逻辑处理$sum = $num_1 + $num_3;push @result,$file;#保存文件名push @result,$sum;#保存和print @result;$sum = $num_2*$num_2 - $num_4*$num_4;push @result,$sum;#保存方差print @result;$print_line = join ',', @result;print $print_line;print out_file "$print_line\n";#结果写到文件 pop @result;pop @result;pop @result;}close in_file;}
close out_file;
closedir DR;

文件夹file_data下有多个文件,将读取到的文件进行匹配,若文件内容含有如下:

exciton_dn: 8.00 4.00

exciton_up: 8.00 3.00

则将第一列数字相加,第二列数字做平方差,结果输出到文件out_file.txt中,输出形式为:

文件名,和,平方差

程序里需要注意的是打开文件:

open (in_file,"<","$dir_tree\\$file")||die "Can't open $dir_tree\\$file: $!";#打开文件,win下用\

open (in_file,"<","$dir_tree\\$file")如果写成open (in_file,"<",$file)或者open (in_file,"<","$dir_tree\$file")的时候将读取不到文件(这是win下的文件目录所以使用“\",如果是linux下就得使用”/“了,open (in_file,"<","$dir_tree\/$file"))。

对于匹配文件中的字符,这里使用的是正则表达式(功能强大,蛮喜欢正则表达式的),代码中所有的print都是为了测试而写的,可以去了。

以上代码运行结果:

a.txt,16,7

b.txt,-10,16

c.txt,-16,7

out_file.txt,-10,16

转载于:https://my.oschina.net/232659/blog/530457

perl读取文件夹下的文件相关推荐

  1. python怎么读文件夹下的文件夹-python2.7读取文件夹下所有文件名称及内容的方法...

    最近稍稍有点空闲时间,于是重新温习了一下之前学习过的python基础.废话不多说,记录一下自己的所得. 首先,安装什么的不在本人的温习范围,另,本人使用的是windows下的python2.7版本,且 ...

  2. webpack 读取文件夹下的文件_TypeScript完全解读(26课时)_1.TypeScript完全解读-开发环境搭建...

    1.TypeScript完全解读-开发环境搭建 初始化项目 手动创建文件夹 D:\MyDemos\tsDemo\client-demo 用VSCode打开 npm init:初始化项目 然后我们的项目 ...

  3. android 读取assets文件夹下的文件资源

    今天,简单讲讲如何读取assets文件夹下的文件. Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.Java里面自动生成该资源文件的ID ...

  4. C# 读取指定文件夹下所有文件

    #region 读取文件 //返回指定目录中的文件的名称(绝对路径)string[] files = System.IO.Directory.GetFiles(@"D:\Test" ...

  5. python读取文件夹下所有文件的名称_python2.7 学习之读取文件夹下所有文件名称及内容...

    python2.7 学习之读取文件夹下所有文件名称及内容 最近稍稍有点空闲时间, 于是重新温习了一下之前学习过的 python 基础废话不多说, 记录一下自己的所得 首先, 安装什么的不在本人的温习范 ...

  6. 用递归方法实现读取文件夹下所有文件信息

    要实现读取文件夹下所有文件信息,其实只要用个递归方法就可以简单实现了 下面为自定义的一个类其中的showEveryFile方法就是为读取给定文件夹下每一个文件 using System; using ...

  7. java读取文件夹下所有文件并替换文件每一行中指定的字符串

    java读取文件夹下所有文件并替换文件每一行中指定的字符串 该文章为转载文章,请尊重原文作者的劳动成果,好的文章应该被展示 原文传送门 多说两句,关键时候救人性命的人,可以称之为大人,随时做好利见大人 ...

  8. Linux C 读取文件夹下所有文件(包括子文件夹)

    Linux C 读取文件夹下所有文件(包括子文件夹) 递归读取某文件夹及其子文件夹下所有文件名 深入探讨:linux中遍历文件夹下的所有文件 Linux C :遍历输出指定目录下的所有文件 Linux ...

  9. Matlab 读取文件夹下所有文件(*.mat *.txt等)

    Matlab 读取文件夹下所有文件(*.mat *.txt等) dir函数: dir('.')列出当前目录下所有子文件夹和文件 dir('G:\Matlab')列出指定目录下所有子文件夹和文件 dir ...

  10. Matlab中对文件夹下.mat文件进行读取及操作

    Matlab读取文件夹中的.mat文件并加载进行信号重采样 文件夹中的数据读取 获取文件夹下文件的各项信息,主要是根据用户所需要的文件夹路径path及文件后缀,使用dir方法可得到文件夹下目标文件的各 ...

最新文章

  1. 学python需要什么文化基础-中国文化走的是()的路线。
  2. Android 监听Home键
  3. ECC6.0中数据导出到本地时报错GETWA_NOT_ASSIGNED
  4. 重磅!神策数据荣获华农保险 2020 年度优秀生态合作伙伴“最佳合作机构”荣誉称号...
  5. Linux selinux入门
  6. 007--C++动态内存(数组)
  7. T-SQL 之 多表联合更新
  8. 基于Vue-cli和Vux的webpack配置
  9. 【Antlr】Antlr语法设计
  10. php读取西门子plc_AB PLC和西门子PLC之间需要交换数据
  11. 销售99绝招 成功没商量
  12. 【java学习之路】(java SE篇)(讨论与思考)关于继承,封装,多态,接口的简单实现与思考
  13. linux 定时执行某个任务,多个时间段
  14. c语言编写打字母游戏代码,求一个用C语言编写的小游戏代码
  15. 小客车年检(年审)相关的技术参数一览
  16. Microled简介及关键工艺(巨量转移)
  17. CSS字体样式属性调试
  18. html中 DPlayer 播放m3u8文件【方式二】
  19. safari打开图片链接显示问题
  20. 注册邮箱账号十大品牌分析

热门文章

  1. 英语发音规则---s发/s/的读音规则
  2. 关于C语言二级机考软件环境的一些问题
  3. 全国中小学教师计算机水平考试,中小学教师计算机水平考试笔试试题
  4. ROS——UDRF机器人模型优化(xacro)
  5. pytorch 常用目标检测评价指标总结
  6. 无线局域网(WLAN)
  7. 沟通管理--关于信息的有效传递和维护
  8. jenkins自动化部署
  9. UE4中三维几何总结——几何体
  10. java解析webp格式图片宽高;java解析webp图片转png格式