Python Stringio

Python Stringio

Una de las características esenciales de Python es su capacidad para manejar "E/S"Operaciones de manera eficiente. "Stringio"Es un módulo en la biblioteca estándar de Python que le permite manipular cadenas como si fueran archivos. Proporciona una interfaz similar a un archivo que le permite leer y escribir cadenas en la memoria. Esto significa que puede usar todos los métodos y funciones que puede usar en un objeto de archivo, como "leer ()", "escribir ()" y "buscar ()".

En este blog de Python, proporcionaremos una guía en profundidad sobre Python "Stringio"Módulo utilizando numerosos ejemplos.

Nota: En la última versión de Python, el ""Stringio"El módulo no existe, por lo que para usarlo, debe ser"importado" desde el "IO"Módulo como"IO.Stringio".

Cómo importar el módulo "Stringio" de Python?

"Stringio"Los objetos se crean utilizando la clase" StringIO ", que se puede importar utilizando el siguiente código:

de io import stringio

Métodos "Stringio"

El "Stringio"El módulo proporciona varios métodos para realizar ciertas tareas. Aquí hay algunos métodos con ejemplos.

"método de escritura

El método "Write ()" se utiliza para escribir una cadena al "Stringio" objeto. Acepta una cadena como argumento/parámetro y la escribe hasta el final del búfer.

Ejemplo

Aquí hay un código de ejemplo:

de io import stringio
myFile = stringio ()
mi archivo.Escribir ("Python")
mi archivo.escribir(" ")
mi archivo.escribir ("guía")
imprimir (myfile.GetValue ())


En el código anterior:

    • El "Stringio"La clase se importa a través del"IO"Módulo.
    • La instancia de "Stringio"Se crea y asigna a la variable"mi archivo".
    • Entonces el "escribir()El método "se utiliza para escribir las cadenas especificadas en el objeto" Stringio ".
    • Por último, el "GetValue ()El método "se utiliza para devolver una representación de cadena del objeto tipo archivo.

Producción


El resultado anterior muestra que los valores de la cadena se han escrito a un "Stringio"Objeto apropiadamente.

Método "Read ()"

El "leer()El método "se utiliza para leer un cierto número de caracteres del objeto" Stringio ". Se lee toda la cadena si no se proporciona ningún argumento/parámetro.

Ejemplo

Vamos a ver el siguiente código de ejemplo que demuestra su uso:

de io import stringio
valor = stringio ("guía de python")
imprimir (valor.leer())


En el fragmento de código anterior:

    • "Stringio ()"Se usa para crear un objeto" stringio "con la cadena"Guía de Python"Como su contenido inicial.
    • Ahora, aplique el "leer()Método para devolver todo el contenido del objeto como una cadena.

Producción


En la salida anterior, la función "Read ()" lee con éxito el contenido del objeto "StringIO".

Método "Readline ()"

Este método se utiliza para leer una línea única/particular desde el objeto "Stringio". Si no se entrega ningún parámetro, lee la siguiente línea.

Ejemplo

Considere el siguiente código de ejemplo:

de io import stringio
input = Stringio ("Guía de Python \ Nlinux Guide")
Imprimir (entrada.Readline ())


Según el código anterior:

    • El objeto "Stringio" se crea con un valor de cadena de línea múltiple de "Guía de Python \ Nlinux Guide". Lo particular "\norteEl personaje ilustra una nueva línea, por lo que la cadena tiene dos líneas de texto.
    • Se lee y devuelve un objeto que contiene una estructura similar a un archivo utilizando el "Readline ()" método.

Producción


El resultado anterior implica que la función "Readline ()" lee con éxito la primera línea del objeto "Stringio".

Método "getValue ()"

El "valiente() "El método devuelve el contenido completo del objeto" Stringio "como una cadena.

Ejemplo

Aquí hay un código de ejemplo para comenzar:

de io import stringio
myFile = stringio ()
mi archivo.Escribir ("Guía de Python")
imprimir (myfile.GetValue ())


En el bloque de código anterior:

    • El "escribir()El método "se utiliza para escribir la cadena establecida en el objeto" Stringio ".
    • El "GetValue ()El método "se usa para obtener todos los contenidos" Stringio "y lo devuelve como una cadena.

Producción


El resultado anterior verifica que todo el contenido de cadena se ha devuelto desde el objeto StringIO.

Método "truncate ()"

El "truncar()El método "del módulo" Stringio "se utiliza para cambiar el tamaño del tamaño de la secuencia de archivos. Después del índice proporcionado, el archivo se elimina y se guarda.

Ejemplo

Revise las líneas de código establecidas a continuación:

de io import stringio
file = stringio ()
archivo.escribir ('guía de python')
Imprimir archivo.GetValue ())
archivo.buscar (6)
archivo.truncar()
Imprimir archivo.GetValue ())


En el fragmento de código anterior:

    • Del mismo modo, el "Stringio ()"Crea una instancia de la clase StringIO y la asigna a la variable llamada"archivo".
    • El "archivo.escribir()El método "escribe la cadena en el objeto StringIO de archivo.
    • El "GetValue ()La función devuelve el contenido del objeto de archivo como una cadena.
    • El "archivo.buscar()"La función toma el número" 6 "como argumento y mueve el puntero del archivo a la posición correspondiente en el objeto de archivo.
    • El "archivo.truncar()"Elimina todo después de la posición actual del puntero del archivo I.mi., "6"En el objeto de archivo.
    • El "GetValue ()La función se usa nuevamente para devolver el contenido actualizado del objeto de archivo.

Producción


En el resultado anterior, el contenido del objeto "Stringio" se ha truncado desde la posición específica.

Métodos "Stringio" y "CSV"

El "Stringio"Es útil para crear"CSV"Archivos en la memoria sin escribirlos en disco. Esto puede ser útil en los casos en que necesita procesar datos antes de escribirlos en un archivo o cuando no desea crear un archivo físico.

Ejemplo

El siguiente es un ejemplo de cómo se puede usar "Stringio" para crear un archivo "CSV":

Importar CSV
de io import stringio
data = [["Nombre", "Age"], ["Joseph", 23], ["Lily", 12]]
salida = stringio ()
escritor = CSV.escritor (salida)
escritor.Writerows (datos)
Imprimir (salida.GetValue ())


En el código anterior:

    • En primer lugar, el "CSV"El módulo se importa y el"StringioSe crea el objeto.
    • El "Lista de listas"Contiene algunas muestras que se inicializan en el programa.
    • El "CSV.escritor()"Se usa para escribir datos CSV en un archivo o un objeto similar a un archivo.
    • El "escritor.Writerows ()El método se utiliza para escribir la lista de datos en el objeto de salida, que almacena los datos de CSV como una cadena en la memoria.
    • Finalmente, el "GetValue ()El método se aplica para devolver los datos de CSV como una cadena.

Producción


Los archivos CSV en la salida anterior se han creado en la memoria sin ser escrito en el disco.

Diferencias entre Stringio y otros tipos de cadenas

"Stringio" es similar a otros tipos de cadenas en Python, como "STR" y "Bytes", pero con algunas diferencias clave. Las siguientes son algunas de las diferencias entre el módulo StringIO y otros tipos de cadenas:

    • "Stringio" es un objeto mutable, mientras que las cadenas regulares son inmutables.
    • "Stringio" se puede usar como un objeto tipo archivo. Esto significa que puede usar "stringio" para leer y escribir cadenas a la memoria de la misma manera que lo haría con un objeto de archivo.

Ventajas y desventajas de Stringio

Los siguientes son las ventajas y desventajas del módulo StringIO:

    • La principal ventaja de "Stringio" es que le permite manipular cadenas como si fueran archivos, lo que puede ser útil para ciertos casos de uso, como archivos CSV en memoria o registros de almacenamiento.
    • La principal desventaja de "Stringio" es que es más lento que otros métodos de E/S de archivos y puede usar mucha memoria.

Conclusión

En Python, el "Stringio"El módulo se usa para manipular cadenas como si fueran archivos. Se puede utilizar para archivos CSV en memoria, almacenamiento de registros o procesamiento de datos de texto en la memoria. Python "Stringio"El módulo proporciona varios métodos como" Read () "," Write () "y" Truncate () ", etc. Para realizar ciertas operaciones en Python. Sin embargo, estos métodos son más lentos que otros métodos de E/S de archivos, y pueden usar mucha memoria si no se usan correctamente. Este blog ofreció una guía en profundidad sobre el módulo "Stringio" a través de varios ejemplos.