Python在文本文件中查找感兴趣的行的索引

时间:2017-10-18 05:34:14

标签: python list indexing

我正在编写一个将文件文本作为输入的代码,它执行以下操作: 它会搜索我感兴趣的特定行(在本例中为 // addExpense = (expense) => { // const expenseList = [...this.state.expenses.expenseList, expense]; // this.setState({expenses: {expenseList}}); // } ),并返回我感兴趣的行之前的行的索引+ 1,其中包含此字符'InChIKey=HCZNPUHZYPPINM-AWEZNQCLSA-M'

这是我的代码

'//'

但是我收到以下错误: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

1 个答案:

答案 0 :(得分:1)

问题在于:

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