2017-10-13 6 views
2

Python 3.6 및 Spyder 사용. 이 하나가 나를 미치게하고 쉽게해야하지만, 난처한 상황입니다. 텍스트 파일을 열고 선 목록을 만들려고합니다. 마침표를 기준으로 선을 구분하려고합니다. 나는 list_of_lines [25]와 같은 것을 할 수 있기를 원합니다. 다음과 같은 오류가 계속 발생합니다. AttributeError : '_io.TextIOWrapper'객체에 '디코드'속성이 없습니다. 파일을 정상적으로 열려고 시도하고 .split()을 사용했지만 ascii 오류가 계속 발생했습니다.텍스트 파일을 열고 문장 사이를 구분하는 선 목록을 만들려고합니다.

올바른 방향으로 나를 안내하거나 제안하면 좋을 것입니다.

with open("SORROWS_OF_YOUNG_WERTHER.txt") as book: 
    text_file = book.decode('ascii') 
    list_of_lines = [word.split('.') for word in text_file.readlines()] 
    print(list_of_lines) 

답변

1

이진 플래그 'b'으로 여는 경우가 아니면. 파일은 이미 텍스트이므로 디코딩 할 필요가 없습니다.

이 잘 작동합니다 :

with open("SORROWS_OF_YOUNG_WERTHER.txt") as book: 
    list_of_lines = [line.decode('utf-8').split('.') for line in book.readlines()] 
    print(list_of_lines) 

출력 그러나 각 기간에 각 라인을 분할하는 것입니다주의하십시오.

+0

감사! 그것이 내가 생각한 것입니다. 디코딩되지 않은 파일에 split() 메서드를 사용하려고 할 때 인식 할 수없는 문자에 대한 오류가 발생했습니다. – Eric

+1

당신의 입력은 ascii가 확실합니까? 다른 인코딩 일 수 있습니다. –

+0

이것은 오류입니다. UnicodeDecodeError : 'ascii'코덱은 1236 위치의 바이트 0xe2를 디코딩 할 수 없습니다. 서수가 범위에 없습니다 (128) – Eric