我正在学习 Python,我制作了一个脚本,它搜索包含“关键字”的几行,然后在新文件中写入/打印(以前)选择的列表行(我使用第二个参数从列表)。
一切都很顺利,直到我尝试添加一个语句以防我选择的列表行大于实际的 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()