我想要獲取文本文件(內容)中與某個字符串對應的行的索引(在本例中爲InChI = 1S/C11etc ..),這裏是我的代碼:找到文本文件中的行索引python
with open('compounds.dat', encoding='utf-8', errors='ignore') as f:
content = f.readlines()
index = [x for x in range(len(content)) if "InChI=1S/C11H8O3/c1-6-5-9(13)10-7(11(6)14)3-2-4-8(10)12/h2-5" in content[x].lower()]
print(index)
但是,我得到空括號[]。但我敢肯定的是,線的存在,因爲如果我運行此:
for line in f:
if u"InChI=1S/C11H8O3/c1-6-5-9(13)10-7(11(6)14)3-2-4-8(10)12/h2-5" in line:
l = line
我得到我感興趣的行。
您的模式具有大寫字母,並且在比較之前爲您的字符串'content [x] .lower()'降低了...爲什麼? –
使用正則表達式..如果你的文件不是太大,Python正則表達式的性能相當不錯。 –