在向文件添加行时添加行号

时间:2014-03-03 11:54:57

标签: python io

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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))

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