在我的主程序中,我在循环中调用一个脚本,作为输出,它将一行数据添加到txt文件中。包含行号的最简单方法是什么?
以下是我正在使用的代码:
if area > 1000:
f = open(output_file, "a")
f.write("%s %s\n" % (a, b))
f.close
答案 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))
这是更简单的方法;它读取整个文件并计算行数。对于较大的文件,您必须在末尾读取一个块以找到最后一行,然后从最后一行解析最后一个计数器,以避免读取整个文件。