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 openen Python 3? Actualmente no me importa el rendimiento.Aquí hay una manera:
fuente
fEsto puede hacer el truco:
Entonces puede mantener su código de la manera python3.
Tenga en cuenta que algunas API como
newline,closefd,openerno 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