Answer the question
In order to leave comments, you need to log in
Why doesn't print work?
I am writing a simple script that remembers words and transfers them to txt. It creates a file in the specified location, but there is nothing inside the file.
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()
Answer the question
In order to leave comments, you need to log in
does not work due to a misunderstanding of what you are trying to do.
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()
I guess it's because you don't feed the contents of the file into input, but feed another string. If you wanted to check if a word is in the content of a file, try the construct
word = 'myword'
with open('file.txt', 'r') as myfile:
print(word in myfile.read())
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question