私はPythonを学んでおり、「キーワード」を含むいくつかの行を検索し、(以前に)選択されたリスト行を新しいファイルに書き込み/印刷するスクリプトを作成しました(2番目の引数を使用して、リスト)。
選択したリスト行が実際の len(list) よりも大きい場合にステートメントを追加しようとするまで、すべてがうまくいきました。次に、選択された list_line = len(list); 何らかの理由で、それは機能しません。
これが機能しない理由を誰でも指摘できますか、これは私のスクリプトです。助けてくれてありがとう。(これは、入力として使用しているファイルの例へのリンクです)
import sys
import re
filename = sys.argv[1]
line_select = int(sys.argv[2])
newfile = str(filename) + ".3d"
openold = open(filename,"r")
opennew = open(newfile,"w")
rline = openold.readlines()
energies = []
line_number = 0
for line in rline:
line_number += 1
if re.search( r"SCF Done", line ):
words = line.split()
energy = float( words[4] )
energies.append(str(line_number) + " : " + "The energy of the molecule is %f kcal mol-1" % energy)
len_list = len(energies)
if line_select > len_list:
line_select = len_list
print >>opennew, energies[line_select]
openold.close()
opennew.close()