从 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 查询导出到文本文件
将 mysql 表导出到 ms Access 表中的最快/安全方式