ошибка python при попытке разделить книгу на главы

#python

#python

Вопрос:

 import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from urllib.request import urlopen

#Reading the text of novel from a website
huck_fin_url = 'http://www.gutenberg.org/files/76/76-0.txt'
df = urlopen(huck_fin_url)
huck_fin_text = df.read()
#print(huck_fin_text)
huck_fin_chapters = huck_fin_text.split('CHAPTER ')[1:]
  

Ошибка

Файл «/Users/richxxxxx/Documents/ReadBooks.py «, строка 19, в huck_fin_chapters = huck_fin_text.split(‘ГЛАВА’)[1:]

Ошибка типа: требуется объект, подобный байтам, а не ‘str’

Ответ №1:

urlopen возвращает поток байтов, а не строку, и .split() недоступен для этих объектов. Сначала вам нужно будет расшифровать ее на основе правильного набора символов:

 from urllib.request import urlopen

#Reading the text of novel from a website
huck_fin_url = 'http://www.gutenberg.org/files/76/76-0.txt'
df = urlopen(huck_fin_url)
huck_fin_text = df.read().decode("utf8")
#print(huck_fin_text)
huck_fin_chapters = huck_fin_text.split('CHAPTER ')[1:]
  

Ответ №2:

 from urllib.request import urlopen

huck_fin_url = 'http://www.gutenberg.org/files/76/76-0.txt'  
df = urlopen(huck_fin_url)  
huck_fin_text = str(df.read())
huck_fin_chapters = huck_fin_text.split('CHAPTER ')[1:]  
print(huck_fin_chapters)
  

вы должны добавить ‘str’ перед df.read()