Python islice 正在读取相同的行

标签 python readfile readlines

我有一个很大的日志文件(> 1GB)需要分析,所以我写了一个 python 程序。我用过islice这样我就可以分块读取文件(10,000 行),这样我的服务器就不会耗尽内存。

我查了一些islice stackoverflow 上的解决方案并实现了一个,但该程序无法按预期工作,因为 isclice 每次都读取相同的行(但在读取整个文件后正确停止......)。我无法使用with open因为它附带了 python 2.5,所以我有 python 2.4...

我的代码如下:

    n = 100000;     # n lines
    inf = open(fn, "r")
    while True:
        next_n_lines = list(islice(inf, n))
        if not next_n_lines:
            break
        out_fn = produce_clean_logfile(next_n_lines)
        a, t = main(out_fn)
        send_log(a,t)

你知道出了什么问题吗?

提前致谢。 问候,约翰。

最佳答案

from itertools import islice
n = 2;     # n lines
fn = "myfile"
inf = open(fn, "r")
while True:
    next_n_lines = list(islice(inf, n))
    if not next_n_lines:
        break
    print next_n_lines

适用于 python 2.5、2.6、2.7 => 我可以看到按顺序显示的行。

错误肯定来自您的其他功能,您可以更新您的问题吗?

关于Python islice 正在读取相同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15828550/

相关文章:

Python:如何在 Pandas 中进行条件操作?

python - 如何将属性严格保留为 pydantic 类的属性

python - 使用 BeautifulSoup 抓取 Web 数据

c++ - 文件读取和 vector 条目问题

Python readline() 不工作?

python - 只读取大型 JSON 中的特定字段并导入 Pandas Dataframe

java - 将 .txt 文件读入二维数组列表

python - 如何在 python 中迭代 readlines()

python - 验证前一行是否具有与当前行相同的字符串和另一列的总和值

javascript - Reader onload 函数不向预定义数组添加分割线