R
R
raftaliyalu2021-10-26 09:07:52
Python
raftaliyalu, 2021-10-26 09:07:52

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

2 answer(s)
A
Alexander, 2021-10-26
@raftaliyalu

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

A
Alan Gibizov, 2021-10-26
@phaggi

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 question

Ask a Question

731 491 924 answers to any question