Ошибка FileExistsError: [Errno 17] File exists при открытии файла
def module():
redak = open (str(input("Как называется файл?: ")), "x")
redak.write (str(input("На какой текст хотите поменять?: ")))
redak.close()
if __name__== "__main__":
L = str(input("Форматировать текст?"))
if L == "Да" or "+":
module()
При выполнении кода выплывает такая ошибка:
Traceback (most recent call last):
File "test.py", line 9, in <module>
module()
File "test.py", line 2, in module
redak = open (str(input("Как называется файл?: ")), "x")
FileExistsError: [Errno 17] File exists: 'b.txt'
Ответы (2 шт):
Автор решения: Ivan Didyk
→ Ссылка
Исправление нескольких ошибок в вашем коде:
def module():
redak = open (str(input("Как называется файл?: ")), "w") # "w" откроет файл на запись
# Если такого файла нет,
# он будет создан
redak.write (str(input("На какой текст хотите поменять?: ")))
redak.close()
if __name__== "__main__":
L = str(input("Форматировать текст?"))
# Интерпретатор читает 'L == "Да" or "+"' как (L == "Да") или ("+"). Это всегда будет истинно
if L in ("Да", "+"): # Если L есть среди "Да", "+"
module()
Автор решения: MarianD
→ Ссылка
Не нужно конвертировать строку на строку (трижды в вашей программе) - функция
input()возвращает прямо строку, значит, применение функцииstr()не нужно.Второй параметр функции
open()у вас"x"- это значит, что при попытке открыть уже существующий файл выдается ошибка, которую вы получили.Существуют 2 решения вашей проблемы:
- Нужно задать имя файла, который еще не существует.
- Вместо
"x"применить"w"(опасно, т.к. вы можете потерять важной файл) или"a"(тоже опасно, но менее, т.к. вы можете изменить важной файл).