Estou recebendo este erro ao executar o notebook do curso.
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
c:\Users\Gustavo Fortunato\Desktop\Classificação de Sequências.ipynb Cell 9 line 1
16 samples_perclass = []
18 for file_name in arquivos:
---> 19 retorno = readLines(os.path.join(root_path,file_name))
20 dados.append(retorno[0])
21 rotulos.append(retorno[1])
c:\Users\Gustavo Fortunato\Desktop\Classificação de Sequências.ipynb Cell 9 line 3
2 def readLines(filename):
----> 3 lines = open(filename).read().strip().split('\n')
4 nomes = [unicodedata.normalize('NFKD', line).encode('ascii', 'ignore') for line in lines]
5 categoria = filename.split('/')[-1].split('.')[0]
File c:\Users\Gustavo Fortunato\AppData\Local\Programs\Python\Python310\lib\encodings\cp1252.py:23, in IncrementalDecoder.decode(self, input, final)
22 def decode(self, input, final=False):
---> 23 return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 144: character maps to <undefined>
Utilizei o código abaixo para converter os txt em ASCII.
import os
import codecs
def converter_txt_para_ascii(root):
# Verificação do caminho da pas, para não termos erros de File not found
if not os.path.exists(root):
print(f"O caminho '{root}' não existe.")
return
arquivos = os.listdir(root)
# Itere pelos arquivos e processe os arquivos .txt
for arquivo in arquivos:
caminho_arquivo = os.path.join(root, arquivo)
if arquivo.lower().endswith(".txt"):
# Abra o arquivo de texto com codificação utf-8
with codecs.open(caminho_arquivo, "r", "utf-8") as arquivo_utf8:
# Leia o conteúdo
texto = arquivo_utf8.read()
# Converta o texto para ASCII e salve
texto_ascii = texto.encode("ascii", "ignore").decode()
with codecs.open(caminho_arquivo, "w", "utf-8") as arquivo_ascii:
arquivo_ascii.write(texto_ascii)
print(f"Convertido '{arquivo}' para formato ASCII.")
if __name__ == "__main__":
root = "./data/names" # Substitua pelo caminho para a sua root
converter_txt_para_ascii(root)
Após a conversão consegui utilizar o código do notebook. Sugiro alteração do notebook da aula atual e também atualização dos outros notebooks.