【问题标题】:Python script to unzip and print one line of a file用于解压缩并打印文件的一行的 Python 脚本
【发布时间】:2013-09-05 05:15:24
【问题描述】:

我正在尝试一个从文件中检索数据并仅打印一行输出的简单示例。我在编码和“r”周围出现分号错误。

import gzip
data = gzip.open('pagecounts-20130601-000000.gz', 'r')
encoded=data.read()
print encoded[2]

它给出了这个错误:

Traceback (most recent call last):
File "filter_articles.scpt", line 4, in <module> encoded=data.read()
File "/usr/lib/python2.7/gzip.py", line 249, in read self._read(readsize)
File "/usr/lib/python2.7/gzip.py", line 308, in _read self._add_read_data( uncompress )
File "/usr/lib/python2.7/gzip.py", line 326, in _add_read_data self.extrabuf = self.extrabuf[offset:] + data MemoryError

我猜这是因为文件很大并且无法读取内容?打印几行文件有什么更好的方法?

【问题讨论】:

  • 您的错误与 perl 脚本有关,并且您使用了 python 标签?
  • 您确定(最终)这是您遇到的错误吗?因为python会在这里提出SyntaxError而不是MemoryError
  • Ashwini 很抱歉,我必须编辑它,因为我正在编码和整理尽可能多的错误,然后我粘贴我已经克服的错误。没关系我得到内存错误。

标签: python gzip unzip


【解决方案1】:

我假设:

  1. 您的意思是在脚本中的文件名两边加上引号。
  2. 您实际上想要第三行(如您的帖子所示)而不是第三个字符(如您的脚本所示)

在这种情况下,以下应该可以工作:

import gzip
data = gzip.open('pagecounts-20130601-000000.gz', 'r')
data.readline()
data.readline()
print data.readline()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2013-12-27
    相关资源
    最近更新 更多