Загрузите потенциально огромный текстовый файл на простой WSGI-сервер на Python.

StackOverflow https://stackoverflow.com/questions/1103940

  •  12-09-2019
  •  | 
  •  

Вопрос

Мне нужно загрузить потенциально огромный текстовый файл в очень простое приложение wsgi, не занимая при этом всю доступную память на сервере.Как мне это сделать?Я хочу использовать стандартные модули Python и по возможности избегать сторонних модулей.

Это было полезно?

Решение

wsgi.input должен быть файлом, похожим на объект потока.Вы можете читать его блоками и записывать эти блоки непосредственно на диск.Это не должно занимать значительную память.

Или может я неправильно понял вопрос?

Другие советы

Если вы используете модуль cgi для анализа входных данных (который используется большинством фреймворков, например, Pylons, WebOb, CherryPy), то он автоматически сохранит загруженный файл во временный файл, а не загрузит его в память.

Питон знает, как это сделать? иметь дело с gzip и zip-файлом Я бы посоветовал вам сжать файл (с помощью приложения, совместимого с zip или gzip, например 7-zip) на вашем клиенте, а затем загрузить его на свой сервер.

Даже лучше :напишите сценарий, который автоматически сжимает ваш файл и загружает его.Это возможно с помощью стандартной библиотеки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top