Sebastián, parte de este gran equipo, nos ha hecho el favor de redactar esta reseña ya que conoce perfectamente dicho tema.
Ejemplo 1: UnicodeDecodeError: el códec ‘charmap’ no puede decodificar el byte 0x9d en la posición 6148: el carácter se asigna a
Add encoding:
file = open(filename, encoding="utf8")
Ejemplo 2: el códec ‘charmap’ no puede decodificar el byte 0x98 en la posición
file = open(filename, encoding="utf8")
Ejemplo 3: UnicodeDecodeError: el códec ‘charmap’ no puede decodificar el byte 0x81 en la posición 92: el carácter se asigna a
file = open(filename, encoding="cp437")
Ejemplo 4: UnicodeDecodeError: el códec ‘charmap’ no puede decodificar el byte 0x9e en la posición 3359: el carácter se asigna a
#add the encoding parameter for open method
with open(filename, encoding='utf8') as infile:
Ejemplo 5: UnicodeDecodeError: el códec ‘charmap’ no puede decodificar el byte 0x81 en la posición 92: el carácter se asigna a
#that's worked for me
file = open(filepath,"r", encoding="utf8")
Ejemplo 6: UnicodeDecodeError: el códec ‘charmap’ no puede decodificar el byte 0x8f en la posición 550: el carácter se asigna a
#Filename Read_file.py
#Author Steve Morse
#Date 5/30/2020
# Cleaned up 9/30/2020
x=" "
# process_lines DID NOT WORK AT FIRST
# I had fogotten that the EOL (end of line) charcter/values were
# still attached to the line
# .strip() got rid of them, no problem
# All this does is print out the line.
def process_lines(line, count):
x=""
print(count)
#print(line)
line2=line.strip() # This strips the offending EOL chars
#print(line2)
# This is my code for finishing the loop
if line2=='Order Number:':
x=''
print(line2)
print('xxxxxxxxxxxxxxxxxxxxxx')
x=input('Enter to continue, X to finish')
if x=='x':
return 'x'
if x=='X':
return 'x'
print("nn")
return x
#=========================================================
Main Routine
#Orders is a BIG file encoded UTF-8
#Orders1 is a SMALL file encoded UTF-8 (1st 5 entries of Orders)
#Initially I had an error
# 'utf-8' codec can't decode byte 0xe2 : invalid continuation byte error
#
# This was solver with the following:
# encoding="UTF-8"
counter=0
with open('orders1.txt', 'r',encoding="UTF-8") as f:
for line in f:
counter +=1
xx=process_lines(line, counter)
if xx=='x':
break
#=========================================================
# So I know it has finished
print("nnn========================================nFinished")
Reseñas y valoraciones de la guía
Si para ti ha resultado provechoso nuestro post, sería de mucha ayuda si lo compartes con el resto programadores de esta manera contrubuyes a extender nuestro contenido.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)