24小时热门版块排行榜    

查看: 107  |  回复: 1
当前主题已经存档。

caojinbo

铜虫 (小有名气)

[交流] 用perl来简化数据处理的一段代码

首先要解释一下为什么放在物理栏目里面。Perl是一种解释型计算机语言,理论上可以完成很多工作,在windows下安装也方便。不过,我们不会用到宏大的工程。这里剧的例子是简化我们的一些数据。特别是从一些仪器里面自动提取的数据。

windows下perl 的安装请google active perl,下载安装即可

例子一,有一段时间我做测量变温变磁场光谱数据,一个星期下来一共有5000多个文件,文件名有点问题,我要重新改一下。要是一个一个得改,改5000个文件,我几天不要睡觉了,呵呵。

我的原文件名是这样的:CMR***rtp**.rat或者CMR***rtn**.rat
我的文件改名规则是,把CMR简化成c,除掉rt,除掉p或者n,在小数点前面加一个零。

好,用perl来做,代码如下。

#This program rename all the files in the directory according to some rules.
#!/usr/bin/perl

@filelist=;
for $file (@filelist)
{
$newfile=$file;

$newfile=~s/CMR/c/i;

$newfile=~s/rt//i;

$newfile=~s/p//i;
$newfile=~s/n//i;
$newfile=~s/\.rat/0\.rat/i;

rename($file, $newfile);
}


保存文件,changename.pl
到DOS下运行perl changename.pl,当前目录下所有的符合规则的文件名就都改变了。

例子二,我的5000个文件头有一堆垃圾代码,是些注释,导入到origin中很难看,于是想全部删掉。我知道代码一共有14行,而且都位于头部。

#This perl program is to delete the first n rows in a file, and save them to the same file.
#!/usr/bin/perl

@filelist=;
for $file (@filelist)
{
$newfile=$file;
open OLD, $file;
@content=;
for (1...14)
{shift @content;}
open OLD, ">$newfile";
print OLD @content;
}

保存文件,delete.pl
到DOS下运行perl delete.pl,当前目录下所有的符合规则的文件就都改变了。


这里只是大概介绍一下perl,如果大家有我这样的需求的时候,不要忘了perl这种工具,上网查查资料编段小代码,做事情会方便很多。


如果你觉得这个帖子对你有帮助,请评分,谢谢。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nanoworm

铁虫 (初入文坛)

1

非常感谢,以为这样事只能在Linux下完成呢
2楼2006-02-22 12:37:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 caojinbo 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 LwdutQ8HoqWP 2026-09-13 4/200 2026-09-16 03:23 by DgNGHc3h5tPl
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +7 3n8v2C8RimXI 2026-09-13 7/350 2026-09-16 02:35 by DgNGHc3h5tPl
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 Aj1rhIDL5ixY 2026-09-14 3/150 2026-09-15 20:47 by zNcEhTcH7ihq
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 Aj1rhIDL5ixY 2026-09-14 3/150 2026-09-15 20:26 by zNcEhTcH7ihq
[考博] 上海工程技术大学激光智能制造课题组招收博士研究生 +6 两三岁ss 2026-09-14 6/300 2026-09-15 20:17 by 只吃肉葡萄
[公派出国] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 Aj1rhIDL5ixY 2026-09-14 3/150 2026-09-15 19:59 by CgyNCDVNhGVg
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 40ms4Wlo4umh 2026-09-14 3/150 2026-09-15 19:23 by CgyNCDVNhGVg
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 6F5UbRU2I5hL 2026-09-14 4/200 2026-09-15 17:35 by CgyNCDVNhGVg
[公派出国] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 s3fFTmArrBt6 2026-09-14 4/200 2026-09-15 16:26 by CgyNCDVNhGVg
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 LwdutQ8HoqWP 2026-09-13 5/250 2026-09-15 15:14 by CgyNCDVNhGVg
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 6F5UbRU2I5hL 2026-09-14 4/200 2026-09-15 08:02 by C79jjtjAKjEn
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 6F5UbRU2I5hL 2026-09-14 4/200 2026-09-15 08:02 by C79jjtjAKjEn
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 6F5UbRU2I5hL 2026-09-14 3/150 2026-09-15 07:58 by C79jjtjAKjEn
[教师之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 s3fFTmArrBt6 2026-09-14 3/150 2026-09-15 07:46 by C79jjtjAKjEn
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 s3fFTmArrBt6 2026-09-13 5/250 2026-09-15 06:49 by 5BDX0d0WFp7t
[博后之家] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +6 3n8v2C8RimXI 2026-09-13 6/300 2026-09-15 05:50 by 5BDX0d0WFp7t
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +6 3n8v2C8RimXI 2026-09-13 6/300 2026-09-15 05:38 by 5BDX0d0WFp7t
[博后之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 s3fFTmArrBt6 2026-09-13 4/200 2026-09-14 23:24 by vZfe6xYu34yj
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 LwdutQ8HoqWP 2026-09-13 4/200 2026-09-14 16:13 by Aj1rhIDL5ixY
[找工作] 浙江师范大学是怎么坑我的 +6 recruit123 2026-09-09 6/300 2026-09-14 12:00 by 萨仁其其格
信息提示
请填处理意见