Задать вопрос
@raftaliyalu

Почему не работает print?

Я пишу простенький скрипт, который запоминает слова и переносит их в txt. Он создаёт файл в указанное место,но внутри файла ничего нет.

def talk():
	myEmi = input("")
	with open(f"BD1/{myEmi}.txt",  "w") as file:
		with open(f"BD1/{myEmi}.txt",  "r") as file:
			if file.read() == myEmi:
				print("Это слово есть!")
				talk()
			else:
				with open(f"BD1/{myEmi}.txt",  "w") as file:
					file.write(myEmi)
					talk()
talk()
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
shabelski89
@shabelski89
engineer
не работает из-за непонимания того что Вы пытаетесь сделать.
def talk():
  myEmi = input("")  # 1 присваиваем переменной myEmi значение введенное в input (это должно быть имя файла?) а кажется что сюда хотели вводить слово которое нужно искать в файле
  with open(f"BD1/{myEmi}.txt",  "r") as file:  # 2 открытие файла на чтение с именем из п.1
    if file.read() == myEmi:  # 3 file.read() читает содержимое file и возвращает содержимое ввиде строки, а дальше вы сравниваете с введенным словом, которое же почему и в имени файла?! Нужно использовать оператор IN вместо ==, а ещё правильнее прочитать файл так result = file.readlines() , что вернёт список строк и потом уже искать в списке элемент.
      print("Это слово есть!")
      talk()
    else:
      with open(f"BD1/{myEmi}.txt",  "w") as file:
        file.write(myEmi)
        talk()
talk()   # 0 вызов функции talk()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Полагаю, потому, что вы не подаете в input содержимое файла, а подаете другую строку. Если вы хотели проверить, есть ли слово в содержимом файла, попробуйте конструкцию
word = 'myword'
with open('file.txt', 'r') as myfile:
    print(word in myfile.read())
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы