Vasp计算后对高对称点的整理

本人为vasp初学者,没用过python。这次尝试用python写了一个脚本用来整理KLABELS以便在画图时直接读取数据,写的并不简洁,见谅!!

import pandas as pd
import numpy as np
import openpyxl
from openpyxl import load_workbook
import xlrd
import os

#————————————————————————处理KLABELS文件(对文件中不需要的数据行进行删除)————————————————————————

with open('KLABELS', "r") as f:                          #读取文本
    data = f.readlines()
    b = len(data)    
    f.close()
print(b)
dirtyid = [0,b-3,b-2,b-1,b]                              #这个想删除是第几行,根据自己想删的内容筛选出来,并将行数保存在dirtyid
new_data = []                                            #新建一个列表
for x in range(len(data)):
        if x not in dirtyid:                             #如果   data的行数  不在需要删除的行数里面
            new_data.append(data[x])                     #将不删的数据赋给另一个列表
 
with open('.\\KLABELS_new.txt','a+')as f:
        f.writelines(new_data)
        f.close
        
data = pd.read_table('KLABELS_new.txt',sep = '\t',header = None)
#print(data.iloc[-1,0])                                  #测试

#————————————————————————后处理KLABELS文件————————————————————————

file = open('KLABELS_new.txt','r')
lines = file.readlines()
file.close()
matrix = []
for line in lines:
    row = line.strip().split(' ')
    matrix.append(row)
    
print(matrix[1])                                         #测试矩阵存储高对称点信息是否成功

c = len(matrix)
print(len(matrix))                                       #测试获得存储高对称点矩阵的规格


wb = openpyxl.Workbook()
wb.save('KLABELS.xlsx')                                  #创建一个excel文档用来存储高对称点信息
wb = load_workbook('KLABELS.xlsx')
sheet = wb['Sheet']
i = 0
for i in range(c):                                       #遍历每一格存储高对称点信息
    sheet.cell(i+1,1).value = matrix[i][0]
    sheet.cell(i+1,2).value = float(matrix[i][-1])
    i = i + 1

wb.save('KLABELS.xlsx')
#————————————————————————高对称点信息于excel文件中存储完成后————————————————————————

worksheet = xlrd.open_workbook('KLABELS.xlsx')
sheet = worksheet.sheet_by_name('Sheet')
cols = sheet.col_values(1)
cols1 = sheet.col_values(0)
print(cols)
print(cols1)

os.remove('KLABELS_new.txt')                             #删除处理痕迹
os.remove('KLABELS.xlsx')                                #删除处理痕迹
#————————————————————————成功存储高对称点到一个数组里————————————————————————
#————————————————————————验证无误————————————————————————

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值