—— 要投稿,上万维,轻松学术交流

严正声明

本站非期刊官网,非中介代理,
不向作者收取任何费用!
举报微信:13140028228 冯老师

态度公正、信息求实、投稿自助、使用免费
您的位置:学术资讯 » 正文
  • 阅读: 2022/3/23 14:35:54

    两个我常用的python小脚本,做批量对接的时候常用且省事的~


    以下均是在Linux系统中完成~


    1. 创建与pdb文件同名的文件夹

    以下命令的功能是:创建与当前文件夹内pdb文件同名的文件夹,且把该pdb文件放在同名的文件夹内:


    import os

    import shutil

    for a in os.listdir('.'):

        if os.path.isfile(a) and os.path.splitext(a)[1]=='.pdb':

            print(a)

            os.mkdir(os.path.splitext(a)[0])

            shutil.move(a,f'{os.path.splitext(a)[0]}/{a}')

    2. 常用的循环命令

    依次进入每个文件夹中,将log文件转移到log_file文件夹中:


    for i in *;do cd $i; mv $i.log ../log_file;cd ..;done


    3. 提取所有log文件中第一个etotal

    该命令的作用是,将当前文件夹下的所有.log文件中的etotal提取出来,名保存在affinity.out文件中:




    import glob

    log_file = glob.glob('*.log')

    print "find the following log files......"+'\n\n'

    print log_file

    print "<<<<<<<<<<<<<<<<<<<<<<<<"+'\n\n'

    print ".......affinity extracting beginning......."+'\n'

    file1=open("affinity.out",'w')

    for i in log_file:

        file2=open(i,'r')

        data=file2.readlines()

        file2.close()

        for j in data:

            if len(j.split())>=2 and j.split()[0]=="1" and j.split()[1]=="1":

                affinity=i+"    "+j.split()[3]

                print affinity

                file1.writelines(affinity+'\n')

    print ".......the end......."+'\n\n'

    file1.close()

    如有侵权,请联系本站删除!

    浏览(462)
    点赞(0)
    收藏(0)

上一篇:ABAQUS本构调整及常见问题解决办法

下一篇:EndNote修改文献字体、字号、行距