从 Python 导出文件的 MS Access 大文件大小问题

Posted

技术标签:

【中文标题】从 Python 导出文件的 MS Access 大文件大小问题【英文标题】:MS Access Big File Size Problem with exported file from Python 【发布时间】:2020-03-19 07:48:07 【问题描述】:

我有一个文件大小为 1.7GB 的 MS Access 文件。我已经尝试压缩和修复,但文件大小保持不变。

这就是我所做的。我从 jupyter python 下载了大约 29 个文件到 excel 和 csv 文件。总数据量约为934MB。

我需要每天更新数据,因此我将Access文件链接到链接表下的所有导出文件,并创建另一个表以相互建立关系。所以我为每个导出的文件有 2 个表,例如:customer_linked 和 customer。

这是一步一步的查询: 1.删​​除查询非链接表中的所有数据 2. 追加查询以将链接表追加到非链接表

我不知道这种方式会使文件超级膨胀到 1.7GB。有没有办法让它变小?

【问题讨论】:

【参考方案1】:

如果您想尝试节省空间,可以考虑将 excel 文件转换为 csvs。根据文件的大小,excel 文件中可能会有很多膨胀,其中充满了您不需要的额外内容。如果您不使用 excel 文件进行图像/图形/某种格式的格式化,那么您最好将它们全部转换为 csvs。

【讨论】:

这是我注意到的奇怪的事情。我试图将数据框导出到 csv 和 excel 文件。令人惊讶的是,csv 中的文件比 excel 中的文件占用更多空间。 @BrianChew 那么它们可能是更大的文件。与 csvs 具有相同行数/列数的 excel 文件的大小会更小,这没有任何意义。如果您将两者都作为列表读入 Python 并计算两个文件的每个单元格中存储的字符总数,那么我希望您会发现 excel 文件包含的数据要少得多。【参考方案2】:

令人惊讶的是,csv 中的文件比 excel 中的文件占用更多空间。

如果这是一个 .xlsx 文件也就不足为奇了,因为这些是 zip 文件。尝试将其重命名为 .zip 并解压缩以查看实际大小。

如果您已压缩它,那就是大小 - 无需担心。

唯一需要担心的是,您正在接近 Access 文件的 2GB 大小限制。如果这对您有影响,请考虑将数据移动到允许 10GB 的免费 SQL Server Express 版本。

【讨论】:

以上是关于从 Python 导出文件的 MS Access 大文件大小问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 或 PowerShell 将所有 MS Access SQL 查询导出到文本文件

从 MS Access 导入数据

将 mysql 表导出到 ms Access 表中的最快/安全方式

MS-Access 平面文件导出错误

通过中间处理从 MS Excel 导出到 MS Access

从 MS Access 中将交叉表查询结果导出到 Excel