在用Python对某一目录下的多个文件进行一一处理,会产生相应的多个结果。比如,在目录'/home/jkx/Anaconda_workspace/task_2017_6_6/ 下有100个.txt 文件,现在,用python对这100个文件进行处理,会得到100个结果文件,我们需要将得到的100个文件自动存入一个新建的目录下,相关代码如下:


import os  
import shutil


#get names of files in the directory
def get_filename(filepath,filetype):
    import os
    filename = []
    for root,dirs,files in os.walk(filepath):
        for i in files:
            if filetype in i:
                filename.append(i)
    return filename


def main():
    srcfilepath = r'/home/jkx/Anaconda_workspace/task_2017_6_6/'
    filetype = '.txt'    
    filename = get_filename(srcfilepath,filetype)
     #文件名形如:“bacteria_5000bp_subsequence_1.txt”,对取得的文件名按照最后的编号排序
    filename.sort(key = lambda x:int(x.split('_')[-1].split('.')[0])) 
    # 新建的目录路径
    desfilepath = r'/home/jkx/Anaconda_workspace/task_2017_6_6/bacteria_5000bp_subsequence_mark'
    os.mkdir(desfilepath)  #新建目录
    for i in range(len(filename)):
        outfilenamei = 'bacteria_5000bp_subsequence_mark_' + str(i+1) + '.txt'
        outfilei = open(outfilenamei,'w')
        infilenamei = srcfilepath + filename[i]
        infilei = open(infilenamei,'r')
        '''
	相关处理
        .........
        .........
        .........
	'''
        infilei.close()
        outfilei.close()
	#将处理后的文件移动到新建的目录下
        shutil.move(outfilenamei,desfilepath)


main()