IIC2233 / syllabus-2020-1

Repositorio oficial del curso IIC2233 Programación Avanzada 🎉🎊
35 stars 68 forks source link

Problema con el encoding al leer los posts #192

Closed maggiemunoz closed 4 years ago

maggiemunoz commented 4 years ago

Hola! hace unos dias hice un issue sobre un error que me salía al usar el encoding utf-8, ya que no me dejaba leer el archivo posts.csv. lo logre resolver usando encoding=latin-1, pero ahora cuando el programa se encuentra con ciertos simbolos como apostrofes, el programa se para, no tira ningun error, solo deja de imprimir el texto y no te deja seguir haciendo nada. Hay alguna forma de solucionarlo? impacta mucho la nota si explico esto en el readme?

maggiemunoz commented 4 years ago

ayuda porfa

lily416 commented 4 years ago

¿Qué error te sale cuando utilizas utf-8?

maggiemunoz commented 4 years ago

UnicodeDecodeError, el de la issue #165

lily416 commented 4 years ago

Vuelve a clonar el syllabus del curso y sustituye los archivos que estas utilizando (solo copia y pegalos en la carpeta).

maggiemunoz commented 4 years ago

eso me dijeron que haga en el issue pero no me resulto, y quedan 5 minutos :(( que tanto afectaria quedarme con ese error?

lily416 commented 4 years ago

Depende del corrector y los problemas que le cause al momento de corregir 😞 Así que no te puedo decir con seguridad cuanto puede afectar

maggiemunoz commented 4 years ago

pucha no te preocupes, pero el encoding latin=1 esta bien? porque a mi me funciona pero no se si es porque mi archivo esta distinto o que :(

lily416 commented 4 years ago

Lo más correcto sería utilizar utf-8, pero dada tu situación lo mejor es que lo dejes con el encoding que estas usando. En tu readme explica tu error y referencia esta issue.

maggiemunoz commented 4 years ago

ya perfecto gracias

lily416 commented 4 years ago

Revisando tu código (muy a la rápida) puede que el error se deba a que al momento de escribir en los archivos (Tarea00.py y usuarios.py) no defines un encoding al abrir el archivo, prueba agregar el encoding a todos los open(), definirlo como utf-8 y utilizar archivos nuevos para testear.

maggiemunoz commented 4 years ago

vale la pena si ya pasaron las 8? siento que el descuento me bajaría mas que el error :(

lily416 commented 4 years ago

En caso de que funcione puedes:

  1. Indicar en el readme las líneas que el corrector debe cambiar, lo que significará un descuento según líneas cambiadas.
  2. Entregar atrasado con los cambios realizados, lo que significará un descuento según la hora del commit a revisar.

Depende de ti (si es que lo del comentario anterior llegara a ser la solución) ver cual opción te conviene más, para eso te recomiendo revisar la guía de descuentos.

Y no te desanimes, aún quedan muchas tareas y actividades por delante 😄

lily416 commented 4 years ago

vale la pena si ya pasaron las 8? siento que el descuento me bajaría mas que el error :(

Si son menos de 20 líneas, conviene indicar en el readme el cambio, ya que el descuento es de techo(c_lineas/4) décimas, donde c_lineas es la cantidad de líneas a cambiar.

Si son más de 20 líneas, depende de la hora (push) del commit a corregir, ya que el descuento es de 5 + 15t/24 décimas, donde t es el tiempo transcurrido. En este caso, lo mejor es que hagas el commit y compruebes con la distribución de puntajes el puntaje asociado a lo que no se podría corregir y el descuento que tendrías si es que entregaras tarde, para así ver qué te conviene hacer.

maggiemunoz commented 4 years ago

yaya, voy a intentar de solucionarlo primero :( porque pongo el utf-8 y aun me falla no entiendo por que

lily416 commented 4 years ago

Si quieres podemos seguir intentando solucionarlo :) Mándame una foto del error que te aparece en consola (ojalá se alcance a ver todo el texto).

maggiemunoz commented 4 years ago

ahora con lo que tengo problemas es con clonar el syllabus de nuevo, quizas no lo estoy haciendo bien, debo borrar el que tengo y despues clonarlo de nuevo?

lily416 commented 4 years ago

Sí, borralo y pon en la consola git clone https://github.com/IIC2233/syllabus.git.

maggiemunoz commented 4 years ago

mira, me pasó algo muy raro, hice eso, corri el codigo usando utf-8 y funciono perfecto, abri el archivo para ver si se habia editado, cerre el archivo, lo corri denuevo y me tiro error con el encoding

Este: File "/Users/Maggie/Desktop/syllabus/Tareas/T00/prograposts.py", line 43, in ver_muro linea = prograposts.readline() File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/codecs.py", line 322, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 1259: invalid start byte

lily416 commented 4 years ago

¿Qué programa usaste para abrir el archivo?

maggiemunoz commented 4 years ago

se abre con excel

lily416 commented 4 years ago

Cuando utilizas Excel, este modifica el archivo y le agrega el carácter que no puede leer el encoding utf-8, después te voy a dejar una issues donde se habla más sobre este problema (si la encuentro).

Para abrir los archivos, lo mejor es que utilices la IDE que estas utilizando, así puedes revisar el contenido del archivo, sin que sea modificado.

maggiemunoz commented 4 years ago

aaaahhh eso explica harto jajajaja, como con la IDE?

lily416 commented 4 years ago

La IDE (Interfaz de desarrollo), además de crear y editar archivos de código (en el caso del curso .py), también permite abrir y editar otro tipo de archivos, como archivos de texto, csv, entre otros.

Para abrirlo, basta con abrir la carpeta en la que quieres trabajar (en el caso de la imagen, T00) y seleccionar el archivo que quieres ver.

image

maggiemunoz commented 4 years ago

ya que bueno, creo que me conviene hacer el cambio de lineas nomas porque son solo 4 lineas entonces una decima nomas, mil gracias! nunca mas excel entonces jajajajaja