【发布时间】:2019-10-08 12:36:47
【问题描述】:
我编写了一个将输出写入文件的程序。输出为 6 列 n 行格式,所有值均为双精度浮点数。在我的代码中,n 变得非常大(1e20 左右)是很常见的,因此,输出数据文件也变得非常大。
我目前以 *.csv 格式存储所有内容,这显然会产生巨大的数据文件。有没有更有效的方法来存储这些值?任何新的文件格式或任何可以显着减小文件大小的新方法?
为了澄清: 数据不需要是人类可读的,二进制就可以了。 我将进一步处理文件中的数据以从运行中获取一些重要参数,可能是行驶距离、特定点的退出时间等。 该代码实际上是对运动粒子的天体物理模拟,对于大约 1e10 个粒子,每个粒子有 100 万个时间步长,它的大小非常高。
【问题讨论】:
-
你能再具体一点吗?格式必须是人类可读的,还是二进制的?
-
你想对文件中的数据做什么?请edit您的问题添加更多信息,而不是在 cmets 中回答。
-
这些数据文件会被 Excel 等其他程序使用吗?如果是这样,.csv 可能是您的最佳选择。您可以使用 zip 或 gzip 压缩文件以进行长期存储吗?
-
我对您的帖子进行了一些小的语法和格式更改,以提高其可读性。希望这也会增加其影响。
-
It is very common in my code for n to become extremely large (1e20 or so)1e20 行文本数据?每行只有 10 个字节,即 100 万 PB。
标签: c file file-writing data-handling