Entrada / salida de Python, archivos -- python camp Relacionados El problema

Python Input/Output, files


4
vote

problema

Español

Necesito escribir algunos métodos para cargar / guardar algunas clases desde y hacia un archivo binario. Sin embargo, también quiero poder aceptar los datos binarios de otros lugares, como una cadena binaria.

En C ++. Podría hacerlo simplemente haciendo que mis métodos de clase usen STD :: ISTREAM y STD :: Ostream, que podría ser un archivo, una flucha, la consola, lo que sea.

¿Python tiene una clase de entrada / salida similar que se puede hacer para representar casi cualquier forma de E / S, o al menos archivos y memoria?

Original en ingles

I need to write some methods for loading/saving some classes to and from a binary file. However I also want to be able to accept the binary data from other places, such as a binary string.

In c++ I could do this by simply making my class methods use std::istream and std::ostream which could be a file, a stringstream, the console, whatever.

Does python have a similar input/output class which can be made to represent almost any form of i/o, or at least files and memory?

  
 
 

Lista de respuestas

10
 
vote
vote
La mejor respuesta
 

La forma de hacerlo de Python es aceptar un objeto que implementa leer () o escribir (). Si tiene una cadena, puede hacer que esto suceda con Stringio :

  from cStringIO import StringIO  s = "My very long string I want to read like a file" file_like_string = StringIO(s) data = file_like_string.read(10)   

Recuerde que Python usa tipificación de pato: no tiene que involucrar a una clase base común. Mientras su objeto implemente lea (), se puede leer como un archivo.

 

The Python way to do this is to accept an object that implements read() or write(). If you have a string, you can make this happen with StringIO:

from cStringIO import StringIO  s = "My very long string I want to read like a file" file_like_string = StringIO(s) data = file_like_string.read(10) 

Remember that Python uses duck-typing: you don't have to involve a common base class. So long as your object implements read(), it can be read like a file.

 
 
0
 
vote

The Pickle y Cpickle Módulos también pueden ser de ayuda para usted.

 

The Pickle and cPickle modules may also be helpful to you.

 
 

Relacionados problema

55  Vistas de clase en Django  ( Class views in django ) 
django Ver puntos a una función, lo que puede ser un problema si quieres cambiar solo un poco de funcionalidad. Sí, podría tener un millón de argumentos de ...

682  Agregar un método a una instancia de objeto existente  ( Adding a method to an existing object instance ) 
He leído que es posible agregar un método a un objeto existente (es decir, no en la definición de clase) en Python. Entiendo que no siempre es bueno hacerlo...

536  ¿Cómo uso IterTools.Groupby ()?  ( How do i use itertools groupby ) 
No he podido encontrar una explicación comprensible de cómo usar realmente la función itertools.groupby()644 de Python. Lo que estoy tratando de hacer es es...

62  Sistema de integración continua para una base de código Python  ( Continuous integration system for a python codebase ) 
Estoy empezando a trabajar en un proyecto de hobby con una base de código python y me gustaría configurar alguna forma de integración continua (es decir, ej...

50  CX_ORACE: ¿Cómo lo hago en un conjunto de resultados?  ( Cx oracle how do i iterate over a result set ) 
Hay varias formas de iterar sobre un conjunto de resultados. ¿Cuál es la compensación de cada uno? ...

49  Obtener una vista previa JPEG de un PDF en Windows?  ( Get a preview jpeg of a pdf on windows ) 
Tengo una aplicación multiplataforma (Python) que necesita generar una vista previa de JPEG de la primera página de un PDF. en la Mac estoy desplazando SIP...

39  Python y MySQL  ( Python and mysql ) 
Puedo conseguir que Python funcione con PostgreSQL, pero no puedo hacer que funcione con MySQL. El problema principal es que, en la cuenta de alojamiento comp...

41  ¿Cómo puedo encontrar la ruta completa a una fuente de su nombre de visualización en una Mac?  ( How can i find the full path to a font from its display name on a mac ) 
Estoy usando la API de JavaScript de Photoshop para encontrar las fuentes en un PSD determinado. Dado un nombre de fuente devuelto por la API, quiero encont...

77  Procesamiento XML en Python [cerrado]  ( Xml processing in python ) 
cerrado . Esta pregunta es basada en opinión . Actualmente no está aceptando respuestas. ¿...

51  Usando 'in' para que coincida con un atributo de los objetos de Python en una matriz  ( Using in to match an attribute of python objects in an array ) 
No recuerdo si estaba soñando o no, pero parece que me recuerdo que hay una función que permitió algo como, foo in iter_attr(array of python objects, attri...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos