這又是個matlab程式,上次幫同學寫了個提取序列的函式,這次要能自動將資料夾中所有檔案自動的識別並建立對應的資料夾,資料夾名要和檔案中某個字段相同。
tmp1=['mkdir ' dir_final];
system(tmp1); %資料夾建立完成
我試了下,用下面的函式系統就自動關機了,
fun='shutdown -s';
system(fun);
你執行了?哈哈,別急趕緊在執行裡輸入shutdown -a 就取消自動關機了,不過要快,就30秒時間。
不扯了,趕緊做正事。
這次的檔案內容如下
locus humhox4a 5834 bp dna pri 26-nov-1992
definition human homeobox hox 4a gene for homeodomain protein, complete cds.
accession d11117
nid g219879
keywords hox 4a homeodomain protein; homeobox.
source human peripheral lymphocytes, cell line akiba, akiba genomic cosmid
library, dna.
organism homo sapiens
eukaryotae; mitochondrial eukaryotes; metazoa; chordata;
vertebrata; eutheria; primates; catarrhini; hominidae; homo.
reference 1 (bases 1 to 5834)
authors taniguchi,y., fujii,a. and moriuchi,t.
title cloning and sequencing of the human homeobox gene hox4a
journal biochim. biophys. acta 1132, 332-334 (1992)
medline 93041940
comment submitted (14-may-1992) to ddbj by: yasushi taniguchi
dept. of cell biology
tokai university schoo
不同的是這次有n個這樣的檔案,要建立n個資料夾,對應的資料夾名如字段accession後面的6個字串所示,
毫無疑問又要用大迴圈了,而且這個大迴圈外面還要套個遍歷放這寫檔案的資料夾中內容的迴圈,(把這句一定要讀懂),matlab自帶的dir函式就有這個功能。
dirs=dir([scr_dir,'*.txt']);
bit_flag=0;
n=length(dirs);
for i=1:n
if ~dirs(i).isdir
這就起到了遍歷的功能。
接下來要開啟檔案了,並找對應的字段,因為這個字段總是在前面,所以少讀點內容就可以了。
file_name=scr_dir;
file_name=strcat(file_name,dirs(i).name);
file_id=fopen(file_name,'r');
file_content=fread(file_id,500);
fclose(file_id);
for i=1:480
switch file_content(i)
case
if(strncmp(char(file_content(i:i+9))','accession',9))
讀取了字段就可以建立資料夾了,
dir_tmp=char(file_content(i+12:i+13+5));
dir_tmp=dir_tmp(1:6);
dir_final=[dir_name_part,dir_tmp'];
tmp1=['mkdir ' dir_final];
system(tmp1); %資料夾建立完成
bit_flag=1;
全部遍歷完就可以了。 matlab 遍歷資料夾內檔案
遍歷所有檔案 path uigetdir t cd path dos命令cd重置當前路徑,自行設定,其下包含全部待處理檔案 allnames struct2cell dir dos命令dir列出所有的檔案,用struct2cell轉換為元胞陣列 m,n size allnames for i 3 n...
遍歷資料夾
function search path string filename string ball boolean false string varsearchrec tsearchrec begin if findfirst path faanyfile,searchrec 0 then begin...
資料夾遍歷
c 遍歷指定資料夾中的所有檔案 directoryinfo thefolder new directoryinfo folderfullname 遍歷一層資料夾 foreach directoryinfo nextfolder in thefolder.getdirectories 遍歷多層資料夾 ...