在文件中写入行后,如何在文件顶部写入行数?

How to write the line count at top of the file after the lines are written in that file?

谁能告诉我如何在使用 python 将行写入文件后在文件顶部写入行数?

line_count=?

sam
john
gus
heisenberg
 f.seek(0)
 f.write("line_count = %s\n"%n)
 f.close()

其中 n 是行计数值

你不能这么简单完全。文件是字节序列。您必须首先确保在编写所有这些行时,将它们写入它们的 final 位置。最简单的方法是在第一次写入文件时“保留”space 作为行数。就像您在描述中所做的一样,编写整个文件,但为行数保留“占位符”空间。例如,如果文件中最多有 9999 行,则为该计数保留四个字节:

line_count=????

sam
john
gus
heisenberg

一旦你写完所有的行,然后用 seek(11)file.write() 返回到文件中适当的字节位置(字节 11-14)和 file.write() 计数,格式为四字符。

我假设您已经知道如何将行写入文件,以及如何格式化整数。您所缺少的只是基本逻辑和 seek 方法。

给你!

text = open("textfile.txt").readlines()
counter = 0
for row in text:
    counter += 1  # just snags the total amount of rows

newtext = open("textfile.txt","w")
newtext.write(f"line_count = {counter}\n\n") # This is your header xoxo
for row in text:
    newtext.write(row) # put all of the original lines back
newtext.close()

确保输入文本文件的路径,但这个简短的脚本只会添加您想要的 line_count = Number header。干杯!