Tengo una base de código Python, creada para Python 3, que usa el estilo Python 3 open () con el parámetro de codificación:
https://github.com/miohtama/vvv/blob/master/vvv/textlineplugin.py#L47
with open(fname, "rt", encoding="utf-8") as f:
Ahora me gustaría exportar este código a Python 2.x, para tener una base de código que funcione con Python 2 y Python 3.
¿Cuál es la estrategia recomendada para solucionar las open()
diferencias y la falta de parámetros de codificación?
¿Podría tener un open()
controlador de archivo de estilo Python 3 que transmita cadenas de bytes, para que actúe como Python 2 open()
?
fuente
Yo creo que
debería hacer.
fuente
from io import open
en Python 3? Actualmente no me importa el rendimiento.Aquí hay una manera:
fuente
f
Esto puede hacer el truco:
Entonces puede mantener su código de la manera python3.
Tenga en cuenta que algunas API como
newline
,closefd
,opener
no funcionanfuente
pass
.Si está utilizando
six
, puede probar esto, mediante el cual utiliza la última API de Python 3 y puede ejecutarse en Python 2/3:Y, el abandono del soporte de Python 2 es solo eliminar todo lo relacionado con
six
.fuente