Perl从文本文件中按关键字提取数据

#!/usr/bin/perl -w


#require "convertword.pl";
use strict;
use warnings;
use Cwd;
use File::Spec::Functions qw( catfile );




# 转换格式
print "转换Word为文本文件...\n";
#&convertWord();
`perl convertword.pl`;


# 关键字设置


#my @KEY_WORD = ("申请部门","申请时间","申请人");
my @KEY_WORD = ();


# 获取当前目录的完整路径信息。
my $currentDir = getcwd;
print "当前目录: ".$currentDir."\n";


# 配置文件
my $cfgFile = "$currentDir/关键字.txt";


# 设置源文件夹
my $SRC_PATH = "$currentDir/TXT/";


# 设置临时文件夹
my $TMP_PATH = "$currentDir/Temp/";


# 设置目标文件夹
my $DEST_PATH="$currentDir/Result/";


# 如果目标文件夹不存在,则创建文件夹
mkdir( $DEST_PATH, 0777 ) if ( !-d $DEST_PATH);


opendir TEMP, ${SRC_PATH} or die "无法打开".$SRC_PATH."目录,请检查一下目录是否存在!";


@KEY_WORD=&readConfig();


# 读取目录下所有文件
my @filelist = readdir TEMP; 


my $srcFile='';
my $srcFileBackup='';
my $destFile=$DEST_PATH.'Result.csv';


my $dateflag=0;
my $ownerflag=0;


my $date='';
my $owner='';


my $count=0;
my $flag=0;


my $line='';


# 如果目标文件夹不存在,则创建文件夹
mkdir($DEST_PATH, 0777) if(! -d $DEST_PATH);
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Perl 的文件操作函数来实现将大文本文件按照指定行数分割成小文本文件的功能。 以下是一个示例代码,可以将大文本文件 `input.txt` 按照每个文件 5000 行的大小拆分成若干个小文本文件,并以 `output_1.txt`、 `output_2.txt`、 `output_3.txt` ... 的方式命名保存。 ```perl #!/usr/bin/perl use strict; use warnings; # 每个输出文件的行数 my $lines_per_file = 5000; # 输入文件名 my $input_file = "input.txt"; # 输出文件名前缀 my $output_file_prefix = "output_"; # 初始化计数器和输出文件名 my $line_count = 0; my $file_count = 1; my $output_file = "$output_file_prefix$file_count.txt"; # 打开输入和输出文件 open(INPUT, "<", $input_file) or die "Cannot open $input_file for reading: $!"; open(OUTPUT, ">", $output_file) or die "Cannot open $output_file for writing: $!"; # 逐行读取输入文件并写入输出文件 while (my $line = <INPUT>) { # 计数器加1 $line_count++; # 如果计数器达到了指定行数,关闭当前输出文件并打开新的输出文件 if ($line_count > $lines_per_file) { close(OUTPUT); $file_count++; $output_file = "$output_file_prefix$file_count.txt"; open(OUTPUT, ">", $output_file) or die "Cannot open $output_file for writing: $!"; $line_count = 0; } # 将当前行写入输出文件 print OUTPUT $line; } # 关闭输入和输出文件 close(INPUT); close(OUTPUT); ``` 这个代码,我们首先指定每个输出文件的行数 `$lines_per_file` 和输入文件名 `$input_file`,然后初始化计数器和输出文件名,打开输入和输出文件。接着,我们逐行读取输入文件,并将当前行写入输出文件。每当计数器达到了指定行数时,关闭当前输出文件并打开新的输出文件,重置计数器和输出文件名。 你可以根据实际需求修改代码的参数,比如输出文件名前缀、每个输出文件的行数等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值