Python: предложение о том, как улучшить запись в потоковой текстовый файл в Python
Я изучаю, как писать потоковые строки в виде файлов в python .
обычно я использую выражение как
myfile = open("test.txt", w) for line in mydata: ... myfile.write(line + '\n') myfile.close()
Python создает текстовый файл в каталоге и сохраняет значения chunk-by-chunk с интервалами времени.
У меня есть следующие вопросы:
можно ли установить буфер? (например: сохранение данных каждые 20 МБ) можно ли сохранить строку за строкой?
спасибо за предложения, они всегда помогают улучшить
- Как предотвратить кодирование аргумента командной строки?
- Установка правильной кодировки при отправке stdout в Python
- писать специальные символы в таблицу excel пакетом python pyExcelerator / xlwt
- Частота счета ngrams
- Является ли эта строка Base64? Как я могу узнать, что такое кодировка?
Файловый ввод-вывод в python уже буферизирован. Функция open()
позволяет определить, в какой степени буфера буферизации:
Необязательный аргумент
buffering
указывает размер требуемого буфера файла:0
означает небуферизованный,1
означает буферизацию строки, любое другое положительное значение означает использование буфера (приблизительно) этого размера. Отрицательнаяbuffering
означает использование системы по умолчанию, которая обычно буферизируется для tty-устройств и полностью буферизируется для других файлов. Если этот параметр опущен, используется системная настройка по умолчанию.
Лично я использую файл в качестве менеджера контекста через оператор with
. Как только все утверждения под пакетом with
(по крайней мере один уровень углубления глубже) завершены или создается исключение, объект файла закрыт:
with open("test.txt", 'w', buffering=20*(1024**2)) as myfile: for line in mydata: myfile.write(line + '\n')
где я установил буфер в 20 МБ в приведенном выше примере.
- Модели Django: управление транзакциями, когда commit_manual устарела
- sqlite – работает с файлом, умирает с: памятью:
- Должны ли операторы импорта Python всегда находиться в верхней части модуля?
- Строковый литерал байта с символами не-ascii
- Кодировать ключи словарей внутри списка от unicode до ascii
- Простой способ создания матрицы случайных чисел
- Группировка констант в python
- Всегда ли лучше писать функцию для всего, что нужно повторить дважды?
- Как исправить кодировку в Python Mechanize?
- Проблема Unicode с SQLAlchemy
- Подсчитайте все значения в матрице, превышающей значение