• python批量处理


    # -*- coding: utf-8 -*-
    """
    Created on Sat Jun 20 19:36:34 2015
    
    @author: chaofn
    """
    import os
    
    """
    这个程序的目的是将linux下/ifs/home/fanchao/Manesh_pdb目录中的所有文件(一共有215个文件)
    批处理
    将pdb文件生成dssp文件
    
    """
    #listdir返回文件名的列表
    fileLine=os.listdir('/ifs/home/fanchao/Manesh_pdb')
    #遍历整个列表
    for i in range(len(fileLine)-1):
        #将字符串用变量表示
        input_file='/ifs/home/fanchao/Manesh_pdb/'+fileLine[i]
        #先去掉文件名的后缀,然后形成后缀为dssp的文件名
        out_file=fileLine[i].split('.')[0]+'.dssp'
        output_file='/ifs/home/fanchao/Manesh_dssp/'+out_file
        #注意:参数的传递(先是%s,然后是%变量名),多个变量的传入要用元组表示,在元组前用%
        os.system('/ifs/share/lib/dssp/dssp2 -i %s -o %s' %(input_file,output_file))

     批量处理数据:从dssp文件夹中遍历提取符合要求的数据,并写入另一个文件夹:

     1 # -*- coding: utf-8 -*-
     2 """
     3 Created on Sun Jun 21 13:03:19 2015
     4 
     5 @author: chaofan
     6 """
     7 
     8 import os   
     9 import re
    10 #列出dssp文件夹中的所有文件名,返回的是一个列表
    11 files=os.listdir('G:/Manesh_dssp') 
    12 #遍历整个文件夹
    13 for filename in files:
    14     #将文件的名称和扩展名分离
    15     portion=os.path.splitext(filename)
    16     #将每个文件后缀.dssp转化成.fasta。以便访问.fasta的文件
    17     fastaFile=portion[0]+'.fasta'
    18     #打开参数指定的fasta文件
    19     fp=open('G:/Manesh_fasta/%s' %fastaFile)
    20     #读取文件的第一行
    21     strLine=fp.readlines()[0]
    22     #用正则式提取该行的一个字母
    23     letter=re.search(':([A-Z])|',strLine).group(1)
    24     #打开参数指定的dssp文件
    25     fr=open('G:/Manesh_dssp/%s' %filename)
    26     #生成后缀名为txt的文件
    27     txtFile=portion[0]+'.txt'
    28     fw=open('G:/Manesh_ACC/%s' %txtFile,'w' )
    29     #从每个dssp文件的第28行开始读取
    30     for line in fr.readlines()[28:]:
    31         lineList=[]
    32         #如果第11个字符等于参数字符,则写入
    33         if line[11]==letter:
    34             lineList.extend([line[7:10],line[11],line[13],line[35:38],'
    '])
    35         #将列表转化成字符串并写入文件
    36         fw.write(' '.join(lineList))
    37     #关闭流
    38     fw.close()
    39     fr.close()
    40     fw.close()
  • 相关阅读:
    Nmap帮助文档解释
    用servlet设置过滤器处理中文乱码
    Linux服务器远程连接window服务器并执行cmd命令
    java中的异常处理
    java的反射机制
    react入门
    多线程编程
    软件工程基本概念
    反射、类加载与垃圾回收
    数据库
  • 原文地址:https://www.cnblogs.com/chaofn/p/4591113.html
Copyright © 2020-2023  润新知