텍스트 파일 (내용)에 특정 문자열 (이 경우 InChI = 1S/C11etc ..)에 해당하는 행의 색인을 가져 오려면 여기에 my 코드 :텍스트 파일에서 라인 인덱스 찾기 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 정규 표현식의 성능이 꽤 좋습니다. –