큰 텍스트의 문자열을 검색하고 그 행 번호를 검색하고 싶습니다. 파이썬에서 2 for 루프를 포함하지 않는 메소드가 있는가?텍스트에서 문자열과 행 번호 찾기 - 파이썬
답변
이것은 당신에게 포함 인덱스
In [112]: lines = filehandle.readlines()
In [113]: for elem in lines:
.....: if elem.find(substr) > -1:
.....: print lines.index(elem)
.....:
를 제공해야하는 모든 인덱스의 SUBSTR
여러 차례 나오는In [122]: text = ['abc', 'def', 'ghi']
In [123]: for elem in text:
.....: if elem.find('e') > -1:
.....: print text.index(elem)
.....:
1
try:
lstLines = fileHandle.readlines():
lineNumber = lstLines.index("strSearch")
except:
print "not found"
우리가'fileHandle'을 제공하고''strSearch''를 변수 또는 뭔가로 대체하더라도이 코드는 여전히 작동하지 않을 것입니다. 여기서 우리는 무엇을 잡을 수 있습니까? 예외는 발생하지 않습니다. 또한, 그것이 효과가 있다고하더라도, 그것들은 부분 문자열이 아닌 전체 라인에만 매치 될 것입니다. -1 – muhuk
for i, line in enumerate(filehandle, 1):
if text in line:
print i, line
당신은 그것을 필터링 filter
를 사용할 수의. 원하는 조건에 맞는 람다 함수를 제공하십시오 (예 : 여기서는 행의 일치).
그리고 두 번째 매개 변수로 검사 할 모든 행의 목록 (반복자)을 지정하십시오. λ 기능에 대한 (line, line-number)
튜플의 반복자를 사용하려면 izip
을 사용합니다.
아래 기능을 확인하십시오 : 여기서 볼 수있는 제한 사항은 2^31 - 1
개 미만의 파일에 대해서만 작동한다는 것입니다.
또한 일치하는 모든 줄 중 줄 번호 목록을 반환합니다.
from itertools import izip
def find_line_num_in_file(file, line):
f = open(file, "r")
matches = filter(lambda x: line in x[0], izip(f.readlines(), xrange(-1 + 2**31)))
f.close()
return [m[1] for m in matches]
줄이 이미있는 경우 (반복자가 아님)이 작업을 수행 할 수 있습니다.
def find_line_num_in_lines(lines, line):
matches = filter(lambda x: line in x[0], zip(lines, range(len(lines))))
return [m[1] for m in matches]
itertools.count (1) IMHO는'(x) range'보다 읽기 쉽습니다. –
- 1. iPhone : 텍스트에서 전화 번호 찾기
- 2. 찾기 행 번호, 다음
- 3. 변수가 수정 된 함수와 행 번호 찾기
- 4. Excel의 범위 이름 시작 행 번호 찾기
- 5. HTML 테이블에서 컨트롤의 행 번호 찾기
- 6. 문자열 찾기 및 문자열이있는 행 번호 찾기 [PYTHON]
- 7. 파이썬 문자열과 변수
- 8. 찾기 번호
- 9. 코어 텍스트에서 텍스트의 경계선 찾기
- 10. 많은 텍스트에서 jQuery 찾기/바꾸기
- 11. 찾기 행
- 12. 일부 문자가 문자열과 일치하는 파이썬
- 13. 파이썬은 문자열과 모든 것을 찾기 전후에
- 14. 행렬의 인덱스 된 요소에 해당 행 및 열 번호 찾기
- 15. 텍스트 파일에서 행 번호 찾기 - 파일을 열지 않고
- 16. 누락 된 번호 찾기
- 17. 문자열에서 번호 찾기 xslt
- 18. CD의 일련 번호 찾기
- 19. 우편 번호/주소 찾기
- 20. "유사한"부품 번호 찾기
- 21. 일련 번호 찾기 사용
- 22. 태그의 개정 번호 찾기
- 23. 그룹의 연속 번호 찾기
- 24. C 번호 : 찾기 버그 :
- 25. 지뢰 찾기 번호 자바
- 26. 연속 번호 시퀀스 찾기
- 27. 찾기 번호 선택 가능성
- 28. 행 번호() OVER
- 29. 소스 코드 행 번호
- 30. 바인딩 Datagrid 행 번호
http://whathaveyoutried.com/ –
파이썬 튜토리얼을 살펴보고, 어쩌면 열거 살펴보고(). – monkut