我将一个序列文件分割成了52个,由于targetp要求比较bt,它要每个序列文件的数目都在1000以下,而为了将来方便处理信息,我该如何将文件一点一点来进行处理呢?
以下是我处理的脚本。
1.第一步,为52个文件创建52个文件夹于fungi_data2目录。直接用shell指令就行。以下不是指令,你可以写个python生成从0到51的数字的字符串,复制粘贴即可。
mkdir 0~51
2.将fungi_data2目录下面的52个file分别放到52个dir下面:
import os
dir = 'fungi_data2'
for parent,dirnames,filenames in os.walk(dir):
for i in range(52):
f = dir+'/'+filenames[i]
dir1 = dir+'/'+dirnames[i]
os.system('mv '+f+' '+dir1)
os.system('mv '+ dir1+' '+f)
3.将52个dir里面的文件分别进行切割,并行处理:
#!/bin/bash
start=`date +%s` #定义脚本运行的开始时间
for dir in ~/huangle/fungi_annotation/fungi_data2/*
do
{
cd $dir
mv $dir/${dir##*/} $dir/1
split -l 1000 $dir/1
rm $dir/1
echo 'success split '$dir' !';
}&
done
wait
end=`date +%s`
echo "TIME:`expr $end - $start`"
网友评论