我正在编写一个将文件文本作为输入的代码,它执行以下操作:
它会搜索我感兴趣的特定行(在本例中为 // 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
。
答案 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