Python Функция усечения не работает должным образом - PullRequest
0 голосов
/ 17 января 2020

Я немного запутался в функции усечения в python. Разве функция усечения не должна очищать файл и отображать только вторую строку ввода? Но в моем файле первая и вторая строки ввода находятся в файле после завершения программы.

Ожидаемый вывод в файле

Line2 input

Текущий вывод в файле

Line1 input Line2 input

Это то, что я получаю в файле, если использую .truncate (0)

enter image description here

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

Пожалуйста, помогите

1 Ответ

1 голос
/ 17 января 2020

См. документы , выделение:

Изменение размера потока до заданного размера в байтах (или текущая позиция, если размер не указан) . Текущая позиция потока не изменяется.

Вам необходимо вызвать .truncate(0), чтобы обрезать файл до нуля байтов.

...