2012-11-28 121 views
-2

我試圖從程序DL_POLY 4的大輸出文件中提取信息,並將它變成一個更簡單的文件,格式化爲某些可視化軟件。執行Python腳本時遇到問題

據說已經有人寫了一個腳本,以大歷史輸出轉換文件(實際上就是包含大量文字的)到名爲.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

您是否按照鏈接網頁上的指示「在該腳本中的atomList中添加/修改原子符號」? –

回答

1

該腳本需要兩個參數。第一個是輸入文件,第二個輸出文件,所以你必須要運行它想:

./his2xyz.py HISTORY the_output_file.xyz 

編輯:你提到你會寫自己的腳本,但你不知道該怎麼辦它。這裏有一些人生建議:如果你不知道如何做某事,可以問一個搜索引擎 - 但你知道。如果你真的真的想寫一個腳本,你需要先學習Python。市場上有很多這方面的好書,但官方文檔也寫得很好。從tutorial開始,玩得開心! :-)

+0

這工作的魅力。感謝您的幫助。 – sparxwil

+1

不客氣。如果有效,你可以接受答案。 ;-) – eminor

+0

其實他剛剛發現了StackOverflow,很可能他已經很遙遠了。 Upvoted爲他。 –