-2

プログラム DL_POLY 4 からの大きな出力ファイルから情報を抽出し、いくつかの視覚化ソフトウェア用にフォーマットされた、より単純なファイルにしようとしています。

おそらく誰かが、大きな HISTORY 出力ファイル (基本的に大量のテキストを含む) を、VMD によって処理される正しい形式である .xyz (拡張子は任意) に変換するスクリプトを既に作成していると思われます。(スクリプト作成者による完全なドキュメントは、http: //www.ccp5.ac.uk/DL_POLY_CLASSIC/FAQ/FAQ9.shtmlから入手できます)

スクリプトは次のとおりです (オンラインでも入手できます)。

#!/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 で実行しようとしましたが、何も実行されず、出力も生成されません。

このスクリプトは動作するはずですか?

自分でスクリプトを書いてみたいのですが、正直、どうしたらいいのかわかりません。

4

1 に答える 1

1

スクリプトは 2 つの引数を取ります。最初のものは入力ファイルで、2 つ目は出力ファイルなので、次のように実行する必要があります。

./his2xyz.py HISTORY the_output_file.xyz

編集:独自のスクリプトを作成すると述べましたが、その方法がわかりません。ここにいくつかの人生のアドバイスがあります: 何かを行う方法がわからない場合は、検索エンジンに尋ねてください。本当に本当にスクリプトを書きたいのなら、まず Python を学ぶ必要があります。市場にはこの目的に関する優れた本がたくさんありますが、公式ドキュメントも非常によく書かれています。チュートリアルから始めて楽しんでください!:-)

于 2012-11-28T16:26:23.760 に答える