Pregunta

Necesito cargar un potencialmente enorme archivo de texto a un muy simple wsgi aplicación sin consumir toda la memoria disponible en el servidor. ¿Cómo puedo lograr eso? Quiero usar módulos estándar de Python y evitar los módulos de terceros si es posible.

¿Fue útil?

Solución

wsgi.input debe ser un archivo como objeto de secuencia. Puede leer de que, en bloques, y escribir los bloques directamente en el disco. Eso no debería utilizar cualquier memoria significativa.

O tal vez no he entendido bien la pregunta?

Otros consejos

Si se utiliza el módulo de CGI se analiza la entrada (que utilizan la mayoría de los marcos, por ejemplo, los pilones, WebOb, CherryPy) y luego se guardará automáticamente el archivo cargado en un archivo temporal, y no cargarlo en la memoria.

tiene pitón sabe acerca de cómo tratar con gzip archivo zip annd yo sugeriría que para comprimir el archivo (utilizando una cremallera o aplicación compatible con gzip como 7-zip) en su cliente y luego subirlo a su servidor.

Aún mejor: escribir un script que de forma automática comprimir el archivo y subirlo. Esto es posible con la biblioteca estándar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top