【问题标题】:python loop through number of rows at a timepython一次循环遍历行数
【发布时间】:2016-12-22 18:38:39
【问题描述】:

我试图在一个文本文件中一次循环 N 行。我如何循环遍历整个文件,例如说它有 100 行并一次打印 10 行。 这就是我的成绩。

 N=10
 f=open("data.txt")
 for i in range(N):
     line=f.next().strip()
     print line
 f.close()

【问题讨论】:

  • 您能否提供一个输入/输出示例来说明您想要实现的目标?
  • “一次打印 10 个”和只打印每一行有什么区别?

标签: python python-2.7 loops


【解决方案1】:

您可以将文件视为迭代器,并在每次迭代时从中获取额外的项目:

with open('data.txt') as f:
    for line in f:
        lines = [line] + [next(f) for _ in xrange(9)]  # have 1 already, so need 9
        # process lines

如果你的文件长度不能被你的块大小整除,你可以改用next(f, None),并在处理lines之前过滤掉Nones。

【讨论】:

  • 如果行数不能被步骤整除,这将引发StopIteration 错误(至少在 Python 3 中)...
  • @brianpck 在这种情况下您可以使用next(f, None)。我更新了答案以反映这一点。
  • @BKCapri - 删除换行符:lines = [line.strip() for line in lines]
  • @arshajii - 也许是lines = [line] + list(iterator.islice(f, 0, 9))。这可能会解决不可整除的问题。
猜你喜欢
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
相关资源
最近更新 更多