Python 截断功能未按预期工作

Python truncate function isnt working as expected

我对 python 中的截断函数有点困惑。截断函数不应该清空文件并只显示第二行输入吗?但是在我的文件中,程序结束后第一行和第二行都在文件中。

文件中的预期输出

Line2 input

文件中的当前输出

Line1 input Line2 input

如果我使用 .truncate(0)

,这就是我在文件中得到的内容

from sys import argv

script, filename = argv

print(f"Erasing the file {filename}")

print("Opening the file...")
# This empties and overrides the file when opening in w mode use 'a' to append to file
target = open(filename, 'w')

line = input("Input a line")

target.write(line)

print("Truncating ie erasing the file...")
target.truncate()

line2 = input("Input another line")

target.write(line2)

target.close()

请帮忙

参见the docs,强调我的:

Resize the stream to the given size in bytes (or the current position if size is not specified). The current stream position isn’t changed.

您需要调用 .truncate(0) 将文件截断为零字节。