En plus de l'évidence (l'un est un type, l'autre une classe)? Qu'est-ce qui devrait être préféré? Toute différence notable dans les cas d'utilisation, peut-être?Quelle est la différence entre StringIO et io.StringIO dans Python2.7?
24
A
Répondre
24
http://docs.python.org/library/io.html#io.StringIO
http://docs.python.org/library/stringio.html
Je vois cela.
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
est une classe. Il gère Unicode. Il reflète la structure de bibliothèque Python 3 préférée.
StringIO.StringIO
est une classe. Il gère les chaînes. Il reflète la structure de la bibliothèque Python 2 héritée.
What should be preferred?
Toujours aller de l'avant vers la nouvelle organisation de la bibliothèque. Le io.open
doit être utilisé pour remplacer le Unicode-unaware intégré open
.
Avant. Avance.
Questions connexes
- 1. quelle est la différence entre:.! et: r !?
- 2. Quelle est la différence entre = et: =
- 3. Quelle est la différence entre dict() et {}?
- 4. Quelle est la différence entre "$^N" et "$ +"?
- 5. Quelle est la différence entre ~ et! opérateur?
- 6. Quelle est la différence entre% Q et% {} dans ruby?
- 7. Quelle est la différence entre // et /// dans Visual Studio?
- 8. Quelle est la différence entre undefined et window.undefined dans JavaScript?
- 9. Quelle est la différence entre - et NOT opérateur dans Lucene?
- 10. Quelle est la différence entre target et currenttarget dans flex?
- 11. Quelle est la différence entre -I et -L dans makefile?
- 12. Quelle est la différence entre memset et memcpy dans C
- 13. Quelle est la différence entre latin1_general_ci et utf8_bin dans MYSQL
- 14. Quelle est la différence entre HttpContext.Current.User et Thread.CurrentPrincipal dans asp.net?
- 15. Quelle est la différence entre send() et sendAndLoad() dans flash?
- 16. Quelle est la différence entre Toggle et slideToggle dans jQuery?
- 17. Quelle est la différence entre * .tpl et * .html dans smarty?
- 18. Quelle est la différence entre $ {...} et! {...} dans Spark View Engine?
- 19. Quelle est la différence entre Int et Integer dans Scala?
- 20. Quelle est la différence entre bcc32 et bcc32ide dans Borland?
- 21. Quelle est la différence entre utf8_general_ci et utf8_unicode_ci dans MySql?
- 22. Quelle est la différence entre SetFocus() et Focus() dans ASP.NET?
- 23. Quelle est la différence entre class et id dans jQuery?
- 24. Quelle est la différence entre IDelegateEvent et IEvent dans F #?
- 25. Quelle est la différence entre: = et = dans MySQL?
- 26. Quelle est la différence entre `=` et `<-` dans R?
- 27. Quelle est la différence entre Partiel et Slot dans Symfony?
- 28. Quelle est la différence entre filter et filter_by dans SQLAlchemy?
- 29. Quelle est la différence entre URLLoader et URLRequest dans Actionscript?
- 30. Quelle est la différence entre SaveOrUpdateCopy et SaveOrUpdate dans Nhibernate?
En fait, aller de l'avant avec le comportement de io.StringIO peut causer des problèmes si vos autres paquets/modules 2.7 ne sont pas encore unicode. Au moins, il a fait pour moi quand gunicorn "avancé" et Django n'a pas [ici] (https://github.com/benoitc/gunicorn/pull/728/files) et [ici] (https: //code.djangoproject .com/ticket/20185). – hobs
@hobs J'ai rencontré le même problème en essayant d'utiliser io.StringIO pour mock.patch 'argparse'. La meilleure façon de faire fonctionner les tests à la fois dans 2 et 3 était 'try: from StringIO import StringIO except ImportError: from io import StringIO'. – jtpereyda