.

Siddharth Kshirsagar

Follow

Août 1, 2020 – 2 min de lecture

.

.

Photo de Robert Thiemann sur Unsplash
  1. StringIO et BytesIO sont des méthodes qui manipulent des données de type chaîne et octet en mémoire.
  2. StringIO est utilisé pour les données de type chaîne et BytesIO est utilisé pour les données binaires.
  3. Ces classes créent des objets de type fichier qui opèrent sur les données de type chaîne.
  4. Les classes StringIO et BytesIO sont les plus utiles dans les scénarios où vous devez imiter un fichier normal.

Dans ce cas, les données ne seront pas conservées en mémoire(RAM) après avoir été écrites dans le fichier

Dans ce cas, au lieu d’écrire le contenu dans un fichier, il est écrit dans un tampon mémoire.(un morceau de ram)

Essentiellement, écrire en utilisant la classe BytesIO est équivalent à

space = b""
space += b"Hello world"
space += b"Hello world"
space += b"Hello world"
space += b"Hello world"
space += b"Hello world"

Alors pourquoi nous définissons io.BytesIO() et pourquoi ne pas utiliser la concaténation d’octets ?

Ans : Optimisation et performances

Y a-t-il un autre moyen par lequel nous pouvons lire des données dans un tampon mémoire mutable ?

Oui, nous pouvons utiliser la méthode readinto() de fichier un objet.

  1. La méthode readinto() de fichiers peut être utilisée pour remplir n’importe quel tableau préalloué avec des données. Y compris les tableaux créés par le module numpy.
  2. À la différence de la méthode normale read() la méthode readinto() remplit le contenu d’un tampon existant plutôt que d’allouer de nouveaux objets et de les retourner.
  3. On peut donc l’utiliser pour éviter de faire des allocations de mémoire supplémentaires.

Exemples:

Vous voulez lire des données binaires directement dans un tampon mutable sans aucune copie intermédiaire pour manipuler les données binaires

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *