使用 python 存储非常大的文件的合适选择是什么? .csv 文件截断了某些单元格中的数据

What is an appropriate choice to store very large files with python? .csv files truncated data in certain cells

我正在为项目的数据采集阶段编写 python 脚本,到目前为止,我一直将数据存储在 .csv 文件中。当我从特定的 .csv 文件中读取数据时,出现错误:

syntaxError: EOL while scanning string literal

我查看了文件中的特定行,特定单元格中的数据被截断了。我正在使用 pandas 将字典存储到 csv 中,它从未抛出错误。我想 .csv 无论如何都会保存自己,即使这意味着它会在没有任何警告的情况下删除数据。

我想换成 .xls。当存储同一行时,出现错误(类似以下内容):

Max character length reached. Max character length per cell was ~32k.

然后我认为这可能只是一个 excel/libreoffice 计算问题(我都试过了)并且它们无法可视化单元格中的数据,但它们确实存在。所以我尝试打印特定的单元格;数据确实被截断了。特定单元格包含一个字典,其值为 float、int、boolean 或 string。但是,它们都已转换为字符串。

我的问题是,有没有办法在不改变文件格式的情况下修复它?

如果我必须更改文件格式,存储非常大的文件的合适选择是什么?我正在考虑 hdf5.

如果您需要更多信息,请告诉我。谢谢!

a limit to fields size:

csv.field_size_limit([new_limit])
Returns the current maximum field size allowed by the parser. 
If new_limit is given, this becomes the new limit.

在我的系统 (Python 3.8.0) 上,我得到:

>>> import csv
>>> csv.field_size_limit()
131072

正好是 128 kB。

您可以尝试将限制设置得更高:

 csv.field_size_limit(your_new_limit)

但根据您存储的数据类型,可能更适合不同的文件格式。