我正在学习Python,我编写了一个脚本,它搜索包含“关键字”的几行,然后在一个新文件中写入/打印(以前)选定的列表行(我使用第二个参数从列表中选择该行)。你知道吗
一切都很顺利,直到我尝试添加一个语句,以防我选择的列表行大于实际的len(list),然后选择的列表行=len(list);无论出于什么原因,它都不起作用。你知道吗
谁能指出为什么它不起作用,这是我的剧本。非常感谢你的帮助。(下面是a link以及我用作输入的文件示例)
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()
energies
列表的最后一个元素实际上是energies[len_list-1]
,因为Python索引从0开始。你知道吗因此,如果要打印“
energies
的最后一个元素”,需要将line_select
初始化为小于列表长度的元素:相关问题 更多 >
编程相关推荐