Разница в размерах между сгенерированным Python CSV и преобразованным файлом XLSX - PullRequest
0 голосов
/ 20 февраля 2019

Я написал python программу для переименования имен файлов (около 500 тыс. Файлов) в определенном формате.Чтобы отслеживать статус, я создал массив из массива status [[]], к которому я добавляю имя файла, путь к файлу, статус (успешно ли переименовано) и ошибку (если есть).После завершения процесса экспорт этого массива в csv с использованием pandas.

status_file = # path to csv file
status_file_stream = open(status_file, 'w')

df_status = pandas.DataFrame(status)
df_status.to_csv(status_file, index=False)

Сгенерированный CSV размер файла равен 228 MB, но когда я открываю его с помощью приложения openoffice исохраните как xlsx, тогда новый xlsx размер файла составит всего 15.6 MB без потери каких-либо данных.

Почему существует огромная разница в размере между CSV и XSLX или это проблемас pandas, чтобы получить большой размер файла?

1 Ответ

0 голосов
/ 20 февраля 2019

для полноты пользы напишите мой комментарий в качестве ответа:

компрессия!CSV - просто причудливый способ сказать, что это текст с запятыми, это простой текстовый файл.С другой стороны, xlsx - это двоичный формат, и программы, которые генерируют этот формат, сжимают данные, если ваши данные в основном совпадают, что, как я полагаю, объясняется тем, что пути в основном одинаковы, то его высокая степень сжатия, чтовы видите

xlsx использует zip (по крайней мере, по данным Google)

, чтобы проверить это утверждение. Я создал файл ~ 110 МБ, содержащий случайные имена файлов с тем же путем, и использовал zlib длясжать его, и результат был ~ 20MB

xlsx, вероятно, имеет дополнительные оптимизации, но я не копался в формате

...