파이썬에서 특정 문자를 찾고 그 문자가 속한 문장 추출하기
조회수 12427회
텍스트 파일에서 어떤 단어를 찾고 그 단어가 들어있는 문장을 어떻게 추출해야 할까요?
예를 들어 '하늘'이라는 단어를 찾고 하늘이 파랗다. 하늘에 비행기가 날아가고 있다. 하늘에 별이 가득하다. 라는 문장들을 각각 추출하고 싶습니다.
for, while, if를 사용해야 할 것 같은데 어떻게 해야 되는지 감도 안잡히네요. 점프 투 파이썬이라는 사이트를 보고 하나하나 따라하고 있는데 파일 실행 및 저장하기까지 진행했고 정규식이란 것은 사용할 수 없는 조건입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
정규식을 쓸 수 없는 환경이 더 궁금하군요.
정규식을 사용할 수 없다면 단순 반복을 해야 합니다.
일단, 문장의 조건이 명확해야 합니다.
라인단위가 문장인지 아니면 구굿점 단위로 문장인지 명확해야 합니다. 그래야만 문장이란 단위로 구분할 수 있습니다.
예를 들어서
하늘이 파랗다. 하늘에 비행기가 날아가고 있다. 하늘에 별이 가득하다.
위의 문장은 3개의 문장입니다. 3개의 문장의 구분 조건은 구둣점 (.) 입니다.
여기까지 되면 문단에서 문장으로 구분할 수 있고 문장에서 "하늘" 이라는 단어를 찾아 존재유무상 작업을 하는 것은 쉬운 일입니다.
-
아래와 같은 정도로 간단한 작업은 가능합니다.
cat sample.txt 하늘에 비행기가 날아가고 있다. 여름은 덥다. 하늘에 별이 가득하다. 겨울은 춥다. with open('sample.txt') as f: lines = f.readlines() print([line.rstrip() for line in lines if line.find('하늘')])
댓글 입력