Python在文本文件中找到感兴趣的行的索引
我正在编写一个代码,它将文件文本作为输入,并执行以下操作: 它搜索我感兴趣的特定行(在本例中为'InChIKey=HCZNPUHZYPPINM-AWEZNQCLSA-M'
)并返回我行的利率之前出现行的索引+ 1,并包含此字符'//'
Python在文本文件中找到感兴趣的行的索引
这里是我的代码
file_info = open('compounds.dat', 'r')
data = {}
line_index = 0
unique_line_index = 0
for line in file_info:
if '//' in line:
#extract line index for lines that contain //
line_index = [x for x in range(len(content)) if "//" in content[x]]
elif 'InChIKey=HCZNPUHZYPPINM-AWEZNQCLSA-M' in line:
# return index of line after //
unique_line_index = line_index + 1
,但我得到了以下错误:can only concatenate list (not "int") to list
。
这里的问题:
line_index = [x for x in range(len(content)) if "//" in content[x]]
虽然你定义line_index
为int
,您与此列表覆盖它,从而错误信息不能连接到int
list
。
更新:
为获得含//
线条的运用指标如下:
file_info = open('compounds.dat', 'r')
special_line_indexes = []
unique_line_index = 0
for i, line in enumerate(file_info.readlines()):
if '//' in line:
#extract line index for lines that contain //
special_line_indexes.append(i + 1)
elif 'InChIKey=HCZNPUHZYPPINM-AWEZNQCLSA-M' in line:
# return index of line after //
unique_line_index = i + 1
如何获得包含//的行的索引而不使用此列表? – StudentOIST
请参阅更新的答案。 – Fejs
此代码的问题在于,unique_line_index正在返回'InChIKey = HCZNPUHZYPPINM-AWEZNQCLSA-M'后的行索引,而我希望'//'后的行索引 – StudentOIST
嗨,你可以分享compounds.dat和预期的结果? –
当你遇到''//''时''line_index'变成了一个列表,然后你做'line_index + 1'。错误信息不能更清楚。 – schwobaseggl