При усечении текстового файла в Python я получаю «Файл не открыт для усечения», даже если я открываю этот файл.Подробности там внизу - PullRequest
0 голосов
/ 28 мая 2018
from sys import argv
script , filename = argv

print(f"\n\nThis program is meant to truncate {filename}")

print("Opening The file ...")
target = open(filename)

print("\n\n Truncating the file ...")
target.truncate()

print(f"Now, I will ask you for 1 line to put into {filename}")

line1 = input("line 1 :")
line2 = input("line 2 :")

target.write(line1)
target.write('\n')
target.write(line2)

print("Closing the file ...")
target.close()

Это был код, и это ошибка

Traceback (most recent call last):
  File "ex9.py", line 10, in <module>
    target.truncate()
io.UnsupportedOperation: File not open for writing

Код написан на python Почему это происходит?Я открываю файл. Любая помощь будет признательна.

1 Ответ

0 голосов
/ 28 мая 2018

Вам нужно открыть файл в режиме записи.

open(filename) не будет делать трюк, потому что это только открывает его в состоянии по умолчанию (r)

вам нужнодобавьте в него параметр 'w' для записи в файл:

из Страница управления BSD fopen

`` w '' Обрезать файл до нулевой длиныили создайте текстовый файл для записи.Поток расположен в начале файла.

Вы должны попробовать это, чтобы ваш кейс работал:

target = open(filename, 'w')

Используйте w+, если вы также хотите прочитать его, но я думаю, это не нужно в вашем случае.

...