Python 向文件中添加行时添加行号

Python 向文件中添加行时添加行号,python,io,Python,Io,在我的主程序中,我在一个循环中调用一个脚本,作为输出,它将一行数据添加到一个txt文件中。包括行号的最简单方法是什么 以下是我正在使用的代码: if area > 1000: f = open(output_file, "a") f.write("%s %s\n" % (a, b)) f.close 您不应该每次都打开输出文件。至于柜台,你可以自己维护一个 with open(input_file, 'r') as i, open(out

在我的主程序中,我在一个循环中调用一个脚本,作为输出,它将一行数据添加到一个txt文件中。包括行号的最简单方法是什么

以下是我正在使用的代码:

if area > 1000: 
        f = open(output_file, "a")
        f.write("%s %s\n" % (a, b))
        f.close

您不应该每次都打开输出文件。至于柜台,你可以自己维护一个

with open(input_file, 'r') as i, open(output_file, 'w') as o:
    count = 1
    for line in i:
        # do some computation
        if area > 1000:
            o.write('%d: %s %s\n' %(count, a, b))
            count += 1

在添加计数器递增的新行之前,首先需要计算文件中已存在的行数:

if area > 1000: 
    with open(output_file, "r+") as f:
        linecount = sum(1 for _ in output_file)
        f.write("%s %s %s\n" % (linecount + 1, a, b))

这是更简单的方法;它读取整个文件并计算行数。对于较大的文件,您必须读取末尾的一个块以找到最后一行,然后从最后一行解析最后一个计数器,以避免读取整个文件。

您是指基于文件中已有行数的行号吗?你需要更清楚地知道伯爵是从哪里来的。是的,我是认真的。我想添加一个计数器,这样当我向输出_文件添加一行时,它的值=写入行数+1。其他行是否已经各有一个计数器?是:所有行都以相同的方式写入,我想为它们中的每一个都包含一个计数器。我每次都被迫打开输出文件,因为我有内存泄漏,这是避免它的最简单的方法。实际上使用with要好得多,因为它自己关闭文件。