Además de lo obvio (uno es un tipo, el otro una clase)? ¿Qué debería ser preferido? ¿Alguna diferencia notable en los casos de uso, tal vez?¿Cuál es la diferencia entre StringIO y io.StringIO en Python2.7?
24
A
Respuesta
24
http://docs.python.org/library/io.html#io.StringIO
http://docs.python.org/library/stringio.html
que ver esto.
An in-memory stream for unicode text. It inherits TextIOWrapper.
This module implements a file-like class, StringIO, that reads and writes a string buffer (also known as memory files).
io.StringIO
es una clase. Maneja Unicode. Refleja la estructura preferida de la biblioteca Python 3.
StringIO.StringIO
es una clase. Maneja cadenas. Refleja la estructura de la biblioteca heredada de Python 2.
What should be preferred?
Avanzar siempre hacia la nueva organización de la biblioteca. El io.open
se debe utilizar para reemplazar el Unicode-aware no incorporado open
.
Delantero. Avanzar
Cuestiones relacionadas
- 1. ¿Cuál es la diferencia entre + = y = +?
- 2. ¿cuál es la diferencia entre:.! y: r !?
- 3. ¿Cuál es la diferencia entre ".equals" y "=="?
- 4. Cuál es la diferencia entre $ y jQuery
- 5. Cuál es la diferencia entre = y: =
- 6. Cuál es la diferencia entre $ (...) y `...`
- 7. ¿Cuál es la diferencia entre dict() y {}?
- 8. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 9. ¿Cuál es la diferencia entre {0} y ""?
- 10. ¿Cuál es la diferencia entre .ToString (+) y ""
- 11. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 12. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 13. ¿Cuál es la diferencia entre " " y ""?
- 14. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 15. StringIO en Python3
- 16. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 17. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 18. ¿Cuál es la diferencia entre Session.Abandon() y Session.Clear() en ASP.Net?
- 19. ¿cuál es la diferencia entre didselectrowindexpath y willselectrowindexpath en iphone?
- 20. ¿cuál es la diferencia entre NULL y Empty en mysql
- 21. ¿Cuál es la diferencia entre longblob y longtext en mysql?
- 22. ¿Cuál es la diferencia entre $ @ y $ * en scripts de shell?
- 23. ¿Cuál es la diferencia entre flush y commit en Hibernate?
- 24. ¿Cuál es la diferencia entre iTerm2 y Terminal en Mac?
- 25. ¿Cuál es la diferencia entre @ y @@ en un módulo?
- 26. ¿Cuál es la diferencia entre & y && en MATLAB?
- 27. ¿Cuál es la diferencia entre _isEnabled y isEnabled en Anguila?
- 28. ¿Cuál es la diferencia entre referencias y objetos en Java?
- 29. cuál es la diferencia entre mapa y hashmap en STL
- 30. ¿cuál es la diferencia entre r y rb en fopen
En realidad, seguir adelante con el comportamiento de io.StringIO puede causar problemas si los otros 2.7 paquetes/módulos aún no son compatibles con Unicode. Al menos lo hizo para mí cuando gunicornio "avanzó" y Django no [aquí] (https://github.com/benoitc/gunicorn/pull/728/files) y [aquí] (https: //code.djangoproject .com/ticket/20185). – hobs
@hobs Me tocó el mismo problema al tratar de usar io.StringIO para mock.patch 'argparse'. La mejor forma que encontré para hacer que las pruebas se ejecutaran en 2 y 3 fue 'try: from StringIO import StringIO except ImportError: from io import StringIO'. – jtpereyda