推荐使用python读取100GB .csv.gz文件

时间:2019-05-10 15:24:41

标签: python memory readfile gz

我在远程Linux中有一个100GB大的“ .csv.gz”文件。我绝对不想解压缩它,因为它的大小可以达到1T。

我正在网上寻找文件。 我在这里看到了建议

python: read lines from compressed text files

gzip?大熊猫?迭代器?

我的导师建议将数据解压缩后再插入。

我还需要考虑内存。因此,readlines()绝对不是我考虑的问题。

我想知道是否有人对此有一个最佳的解决方案,因为文件很大,做任何事情都会花我很多时间。

2 个答案:

答案 0 :(得分:0)

您可以将文件大块地传送到python中,并按for line in sys.stdin: ...逐行处理:

zcat 100GB.csv.gz | python <my-app>

答案 1 :(得分:0)

逐行阅读以下内容:

import sys

for line in sys.stdin:
    do_sth_with_the_line(line)

您使用以下命令调用此python脚本:

zcat | python_script.py