终于可以发帖了!。。。。
我想用perl批量处理一批序列文件,就是每个序列单独一个文件,大概一百多个文件,想写个程序,把所有文件批量打开,做处理,然后再关上,改原文件或者生成个新文件都可以。
但现在不知道怎么能一次打开很多文件,文件句柄可以是变量么?
有点相关的问题
- perl匹配gbk文件问题 (1.000)
- 如何利用用perl编程取得100000个不相同的随机数? (1.000)
- 请问,这应怎么办?thank u in advance. (1.000)
- 求助:如何将gff格式序列的部分注释信息加到相应的fasta格式序列中。 (1.000)
- 求助:flag variables 怎么用? (1.000)
- 关于fasta文件的合并 (1.000)
- 如何从一个DNA序列中提取特定的序列? (1.000)
- 如何利用perl和blast从多个序列中寻找到一条大概21至24bp左右的公共序列? (1.000)
- perl画图程序求解释 (1.000)
- 求助:如何从众多数据中提取数据的坐标信息 (1.000)
- 请求有人能为我解答一个perl小程序 (RANDOM - 1.000)
可以用opendir函数哦。
例子:
#!/usr/bin/perl -w
$dirname = "/tmp"; #指定一个目录
opendir ( DIR, $dirname ) || die "Error in opening dir $dirname\n";
while( ($filename = readdir(DIR))){
print("$filename\n"); #循环输出该目录下的文件。
### do something ###
}
closedir(DIR);
上面是循环拿到该目录下的文件。 这样就能循环对文件进行处理了,具体打开某个文件更改后,保存文件这些我就不。
362●
@O型天蝎座:
你貌似起得很早哦,大周末的。
88●
@Sophie:恩,习惯了嘛。
362●
我在while( ($filename = readdir(DIR))){
之后 open (FH, "$filename")or die "could not open the file";
while($seq=){.....
显示无法打开$filename制定的文件,这个不是每次返回一个文件名称,将这个文件给文件句柄打开文件为什么不行呢?
29●
返回的信息好像是permission denied,可是文件上没有作任何权限修改啊?
29●
而且貌似循环处理文件里的每行序列,打开文件并修改也处理不成功。。。。
29●
@tatianaliu:那是肯定的了。$filename只是文件名,你又没有指定目录。你要一步一步来。每一步都先测试成功。
$dirname/$filename,这样目录才完整。
362●
哦,好!多谢啦!!再试试看!
@O型天蝎座:
29●
学习了
61●
把你要对每个文件要处理的perl程序先写好,例如是要把seq文件批量改成fa文件的perl程序。
之后些个sh文件就好了,不要这么纠结。
ls /pwd/ | awk '{print "perl *.pl /input pwd/"$0 " /output pwd/"$0}' > *.sh
然后就sh *.sh 就ok了!
这个sh就会自动帮你批量处理所有的文件了,前提是你所有的序列文件都是要做相同处理的!
8●
评论已关闭。