【问题标题】:Obtain progress in reading large text file获取读取大文本文件的进度
【发布时间】:2016-01-27 11:41:13
【问题描述】:

我有一个非常大的文本文件(数 GB 大小),我需要将其读入 Python,然后逐行处理。

一种方法是简单地调用data=f.readlines(),然后处理内容。通过这种方法,我知道总行数,并且可以轻松衡量我的处理进度。然而,考虑到文件大小,这可能不是理想的方法。

另一种选择(我认为更好)是:

    for line in f:
      do something

现在我不知道如何衡量我的进步了。有没有不增加巨大开销的好选择? (我可能想知道进度的一个原因是要粗略地指示剩余时间,因为我文件中的所有行都有相似的大小,并确定我的脚本是否仍在做某事或卡在某个地方。 )

【问题讨论】:

标签: python-2.7 file-io text-files readfile line-count


【解决方案1】:

如果使用 linux 操作系统,似乎有一条出路。

a = os.popen("wc -l some.txt")
f = a.read()

在阅读时,您会得到行数以及文件名

【讨论】:

  • getsize 返回字节而不是行号
  • 是的,Serbitar 正如你所说,它只返回字节。错误!!! ..如果使用的操作系统是linux,那么..上面编辑的答案可能会起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
相关资源
最近更新 更多