我想使用编解码器操纵列

时间:2017-11-03 14:46:10

标签: python

我正在尝试从压缩文件中提取信息。 我用了这段代码:

import codecs
!gunzip pagecounts-20150501-000000.gz
log = codecs.open('pagecounts-20150501-000000', 'r')
lines = log.readlines(1)
print(lines)

然而它只给我文件中的第一个字母。该文件实际上有4列,但我想使用数据框或任何其他结构存储前两列用于海量数据(几乎186328237行)。

1 个答案:

答案 0 :(得分:1)

你只是要求第一行中的第一个字符:

lines = log.readlines(1)

您只是将'1'传递给readlines'read() method - 如果您想要阅读更多内容,请更改该值,或者您可以使用readline()方法一次读一行。

来自docs

  

readlines ([ sizehint [, keepends ]])阅读所有可用的行   输入流并将它们作为行列表返回。

     

使用编解码器的解码器方法实现行结尾   如果keepends为true,则包含在列表条目中。

     

sizehint ,如果给定,则作为size参数传递给流   read()方法。

要阅读第一行,请尝试:

lines = log.readline()