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

+0

嗨,你可以分享compounds.dat和预期的结果? –

+1

当你遇到''//''时''line_index'变成了一个列表,然后你做'line_index + 1'。错误信息不能更清楚。 – schwobaseggl

这里的问题:

line_index = [x for x in range(len(content)) if "//" in content[x]] 

虽然你定义line_indexint,您与此列表覆盖它,从而错误信息不能连接到intlist

更新:

为获得含//线条的运用指标如下:

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 
+0

如何获得包含//的行的索引而不使用此列表? – StudentOIST

+0

请参阅更新的答案。 – Fejs

+0

此代码的问题在于,unique_line_index正在返回'InChIKey = HCZNPUHZYPPINM-AWEZNQCLSA-M'后的行索引,而我希望'//'后的行索引 – StudentOIST