Почему не работает print?
не работает из-за непонимания того что Вы пытаетесь сделать.
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()
Полагаю, потому, что вы не подаете в input содержимое файла, а подаете другую строку. Если вы хотели проверить, есть ли слово в содержимом файла, попробуйте конструкцию 
word = 'myword'
with open('file.txt', 'r') as myfile:
    print(word in myfile.read())