我正在尝试从程序DL_POLY 4中的大输出文件中提取信息,并将其转换为更简单的文件,格式化为某些可视化软件。
据说有人已经编写了一个脚本来将大型HISTORY输出文件(基本上只包含大量文本)转换为.xyz(扩展名是任意的),这是VMD要处理的正确格式。 (脚本创建者的完整文档可在此处获取:http://www.ccp5.ac.uk/DL_POLY_CLASSIC/FAQ/FAQ9.shtml)
这是脚本(也可用online):
#!/usr/bin/env python
import sys,string
atomList=['Si','Al','O_','O','H','C','Cl','Na','Zr','Y_','Mg','K','Ag','Ar']
inputFile=open(sys.argv[1],'r')
outFile=open(sys.argv[2],'w')
title=inputFile.readline()
line=inputFile.readline()
while(line!=""):
if string.split(line)[0]=='timestep':
timestep='step= '+string.split(line)[1]+'\n'
totalAtom=string.split(line)[2]+'\n'
outFile.write(totalAtom)
outFile.write(timestep)
if string.split(line)[0][:2] in atomList:
atomName=string.split(line)[0][:2]+'\t'
outFile.write(atomName)
xyzline=inputFile.readline()
outFile.write(xyzline)
line=inputFile.readline()
inputFile.close()
outFile.close()
我已经尝试将脚本保存为一个名为his2xyz.py的文件(在包含HISTORY文件的目录中)并通过Python运行,但这没有做任何事情并且不会产生输出。
这个脚本看起来应该有用吗?
我想尝试编写自己的脚本,但诚实地说,我不知道该怎么做。
答案 0 :(得分:1)
该脚本有两个参数。第一个是输入文件,第二个是输出文件,所以你必须运行它:
./his2xyz.py HISTORY the_output_file.xyz
编辑:你提到你会编写自己的脚本,但你不知道该怎么做。以下是一些生活建议:如果你不知道如何做某事,请问一个搜索引擎 - 但你知道。如果你真的真的想写一个脚本,你需要先学习Python。市场上有很多这方面的好书,但官方文档也写得非常好。从tutorial开始,玩得开心! : - )