perl读取文件夹下的文件
#!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读取文件夹下的文件相关推荐
- python怎么读文件夹下的文件夹-python2.7读取文件夹下所有文件名称及内容的方法...
最近稍稍有点空闲时间,于是重新温习了一下之前学习过的python基础.废话不多说,记录一下自己的所得. 首先,安装什么的不在本人的温习范围,另,本人使用的是windows下的python2.7版本,且 ...
- webpack 读取文件夹下的文件_TypeScript完全解读(26课时)_1.TypeScript完全解读-开发环境搭建...
1.TypeScript完全解读-开发环境搭建 初始化项目 手动创建文件夹 D:\MyDemos\tsDemo\client-demo 用VSCode打开 npm init:初始化项目 然后我们的项目 ...
- android 读取assets文件夹下的文件资源
今天,简单讲讲如何读取assets文件夹下的文件. Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.Java里面自动生成该资源文件的ID ...
- C# 读取指定文件夹下所有文件
#region 读取文件 //返回指定目录中的文件的名称(绝对路径)string[] files = System.IO.Directory.GetFiles(@"D:\Test" ...
- python读取文件夹下所有文件的名称_python2.7 学习之读取文件夹下所有文件名称及内容...
python2.7 学习之读取文件夹下所有文件名称及内容 最近稍稍有点空闲时间, 于是重新温习了一下之前学习过的 python 基础废话不多说, 记录一下自己的所得 首先, 安装什么的不在本人的温习范 ...
- 用递归方法实现读取文件夹下所有文件信息
要实现读取文件夹下所有文件信息,其实只要用个递归方法就可以简单实现了 下面为自定义的一个类其中的showEveryFile方法就是为读取给定文件夹下每一个文件 using System; using ...
- java读取文件夹下所有文件并替换文件每一行中指定的字符串
java读取文件夹下所有文件并替换文件每一行中指定的字符串 该文章为转载文章,请尊重原文作者的劳动成果,好的文章应该被展示 原文传送门 多说两句,关键时候救人性命的人,可以称之为大人,随时做好利见大人 ...
- Linux C 读取文件夹下所有文件(包括子文件夹)
Linux C 读取文件夹下所有文件(包括子文件夹) 递归读取某文件夹及其子文件夹下所有文件名 深入探讨:linux中遍历文件夹下的所有文件 Linux C :遍历输出指定目录下的所有文件 Linux ...
- Matlab 读取文件夹下所有文件(*.mat *.txt等)
Matlab 读取文件夹下所有文件(*.mat *.txt等) dir函数: dir('.')列出当前目录下所有子文件夹和文件 dir('G:\Matlab')列出指定目录下所有子文件夹和文件 dir ...
- Matlab中对文件夹下.mat文件进行读取及操作
Matlab读取文件夹中的.mat文件并加载进行信号重采样 文件夹中的数据读取 获取文件夹下文件的各项信息,主要是根据用户所需要的文件夹路径path及文件后缀,使用dir方法可得到文件夹下目标文件的各 ...
最新文章
- 学python需要什么文化基础-中国文化走的是()的路线。
- Android 监听Home键
- ECC6.0中数据导出到本地时报错GETWA_NOT_ASSIGNED
- 重磅!神策数据荣获华农保险 2020 年度优秀生态合作伙伴“最佳合作机构”荣誉称号...
- Linux selinux入门
- 007--C++动态内存(数组)
- T-SQL 之 多表联合更新
- 基于Vue-cli和Vux的webpack配置
- 【Antlr】Antlr语法设计
- php读取西门子plc_AB PLC和西门子PLC之间需要交换数据
- 销售99绝招 成功没商量
- 【java学习之路】(java SE篇)(讨论与思考)关于继承,封装,多态,接口的简单实现与思考
- linux 定时执行某个任务,多个时间段
- c语言编写打字母游戏代码,求一个用C语言编写的小游戏代码
- 小客车年检(年审)相关的技术参数一览
- Microled简介及关键工艺(巨量转移)
- CSS字体样式属性调试
- html中 DPlayer 播放m3u8文件【方式二】
- safari打开图片链接显示问题
- 注册邮箱账号十大品牌分析