POSCAR处理脚本(一)

2016-10-04

直接贴代码了!


# -*- coding: utf-8 -*-

#!use/bin/env python

# to replace the relaxed top two layers with unrelaxed ones 


import subprocess   

subprocess.call('rm POSCAR_new -f', shell = True)


New_POSCAR = open('POSCAR_new', 'a+')


def Get_and_Save_lines(file_name, start_line, end_line):

    f = open(file_name)

    lines =  f.readlines()

    for line in lines[int(start_line):int(end_line)]:

        New_POSCAR.write(line.rstrip()+'\n')


Get_and_Save_lines('POSCAR',0,9) 

Get_and_Save_lines('original',9,27)   

line_num = int(len(open('POSCAR').readlines()))

Get_and_Save_lines('POSCAR',27,line_num+1)


POSCAR包含relaxed的坐标,original 含有未relaxed的坐标, POSCAR_new 为替换过后新的POSCAR 


我的POSCAR中,top two layers 含有9个原子,需要被替换的是第10-27行。


适用于对python有些了解的人。不懂的邮件联系: bigbro@bigbrosci.com

本网站由阿里云提供云计算及安全服务