2024-09-30 06:20:08 发布
网友
我有超过40GB焦油gz文件位于https://ghtstorage.blob.core.windows.net/downloads/mysql-2016-06-16.tar.gz 我如何在CSV文件中找到压缩在这个文件中的行数焦油gz文件而不解压缩整个文件,这可能是100+千兆字节?在
without uncompressing the entire file which might be in 100+ GBs
我的意思是不先提取磁盘。下面是一个Python方法来实现这一点:
import tarfile as tf import gzip as gz from StringIO import StringIO infile = '/path/to/mysql-2016-06-16.tar.gz' def linecount(infile, member): lc = 0 with gz.GzipFile(infile) as zipf: with tf.TarFile(fileobj=zipf) as tarf: dataf = tarf.extractfile(member) while dataf.readline(): lc += 1 dataf.close() return lc print linecount(infile, 'test.csv')
it say's "filename 'test.csv' not found".
要知道tar文件有哪些成员:
要计算tarfile中所有文件的行数:
for member in listmembers(infile): print member, linecount(infile, member)
在开始之前,know how tar files are structured将很有用。在
如果其中只有一个csv文件焦油gz,您可以将此作为bash one liner:
tar -zxOf mysql-2016-06-16.tar.gz | wc -l
它使用tar将归档文件中的所有文件提取为标准输出(-O,大写O,而不是零),并使用wc来计算行数。在
如果有更多的文件,并且只需要一个文件,可以按如下方式计算该文件中的行数:
tar -zxOf mysql-2016-06-16.tar.gz mysql-2016-06-16/commit_comments.csv| wc -l
以下是如何列出存档中的所有文件:
tar -zlf mysql-2016-06-16.tar.gz
CSV文件通常有一个头文件,因此每个文件删除一行,您就有了行数。在
我的意思是不先提取磁盘。下面是一个Python方法来实现这一点:
要知道tar文件有哪些成员:
^{pr2}$要计算tarfile中所有文件的行数:
在开始之前,know how tar files are structured将很有用。在
如果其中只有一个csv文件焦油gz,您可以将此作为bash one liner:
tar -zxOf mysql-2016-06-16.tar.gz | wc -l
它使用tar将归档文件中的所有文件提取为标准输出(-O,大写O,而不是零),并使用wc来计算行数。在
如果有更多的文件,并且只需要一个文件,可以按如下方式计算该文件中的行数:
tar -zxOf mysql-2016-06-16.tar.gz mysql-2016-06-16/commit_comments.csv| wc -l
以下是如何列出存档中的所有文件:
tar -zlf mysql-2016-06-16.tar.gz
CSV文件通常有一个头文件,因此每个文件删除一行,您就有了行数。在
相关问题 更多 >
编程相关推荐