파이썬에서 특정 문자를 찾고 그 문자가 속한 문장 추출하기

조회수 12427회

텍스트 파일에서 어떤 단어를 찾고 그 단어가 들어있는 문장을 어떻게 추출해야 할까요?

예를 들어 '하늘'이라는 단어를 찾고 하늘이 파랗다. 하늘에 비행기가 날아가고 있다. 하늘에 별이 가득하다. 라는 문장들을 각각 추출하고 싶습니다.

for, while, if를 사용해야 할 것 같은데 어떻게 해야 되는지 감도 안잡히네요. 점프 투 파이썬이라는 사이트를 보고 하나하나 따라하고 있는데 파일 실행 및 저장하기까지 진행했고 정규식이란 것은 사용할 수 없는 조건입니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • 정규식을 쓸 수 없는 환경이 더 궁금하군요.

    정규식을 사용할 수 없다면 단순 반복을 해야 합니다.

    일단, 문장의 조건이 명확해야 합니다.

    라인단위가 문장인지 아니면 구굿점 단위로 문장인지 명확해야 합니다. 그래야만 문장이란 단위로 구분할 수 있습니다.

    예를 들어서

    하늘이 파랗다. 하늘에 비행기가 날아가고 있다. 하늘에 별이 가득하다.

    위의 문장은 3개의 문장입니다. 3개의 문장의 구분 조건은 구둣점 (.) 입니다.

    여기까지 되면 문단에서 문장으로 구분할 수 있고 문장에서 "하늘" 이라는 단어를 찾아 존재유무상 작업을 하는 것은 쉬운 일입니다.

    • 아, 급해서 미처 설명을 못드렸는데 문장은 구두점+엔터로 구분되어있습니다. 알 수 없는 사용자 2018.5.29 10:18
  • 아래와 같은 정도로 간단한 작업은 가능합니다.

    cat sample.txt
    하늘에 비행기가 날아가고 있다. 
    여름은 덥다.
    하늘에 별이 가득하다.
    겨울은 춥다.
    
    
    with open('sample.txt') as f:
        lines = f.readlines()
        print([line.rstrip() for line in lines if line.find('하늘')])
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)