Написать большой файл

Неудачно, что dumps не позволяет вам ничего делать, чтобы плавать. Однако loads. Поэтому, если вы не против дополнительной загрузки процессора, вы можете пропустить его через кодировщик / декодер / кодировщик и получить правильный результат:

>>> json.dumps(json.loads(json.dumps([.333333333333, .432432]), parse_float=lambda x: round(float(x), 3)))
'[0.333, 0.432]'
11
задан user38941 19 November 2008 в 14:18
поделиться

3 ответа

Это зависит от:

  • Файловая система, которую Вы используете. Старые файловые системы как FAT позволяют только файлам до 2 ГБ. Используйте NTFS.
  • Ваша библиотека должна быть скомпилирована для разрешения больших файлов (64 бита ищут смещения). Если они используют 32 бита ints для поиска в файле (проверьте аргументы, и результаты вызовов "ищут" и "говорят"), можно только когда-либо получать доступ к 2 ГБ (2^31bits, 32-м является знак +/-),

Это могло бы также помочь: http://www.boost.org/doc/libs/1_37_0/libs/iostreams/doc/faq.html#offsets

9
ответ дан 3 December 2019 в 08:06
поделиться

В Win32/64 ReadFile & WriteFile может записать файлы, больше, чем 4 ГБ. Расположение сделано через 64 бита _LARGE_INTEGER значение в SetFilePointerEx. Аналогично для получения размера файла Вам нужен GetFileSizeEx а не основной GetFileSize.

5
ответ дан 3 December 2019 в 08:06
поделиться

В NTFS единственный реальный предел является размером объема. Если Вы хотите протестировать это, можно создать фиктивный файл с помощью командной строки:
файл fsutil createnew [имя файла] [validdatalength]
Исключая:
файл createnew TestFile.bin 65536000000 fsutil
Это должно создать файл на 64 ГБ, принимающий Вас, имеют том NTFS.

1
ответ дан 3 December 2019 в 08:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: