Код Python не печатает содержимое txt?

#python

#python

Вопрос:

 elif menuOption == "2":
    with open("Hotel.txt", "a ") as file:
           print (file.read())
  

Я пробовал много разных способов, но мой файл python просто отказывается печатать содержимое txt. Выполняется запись в файл, но вариант 2 не будет его читать.

 if menuOption == "1":
  print("Please Type Your Guests Name.")
  data1 = (input()   "n")
  for i in range (2,1000):
   file = open("hotel.txt", "a")
  file.write(data1)
  print("Please Write your Guests Room")
  data2 = (input("n")   "n")
  file.write(data2)
  data3 = random.randint(1, 999999)
  file.write(str (data3))
  print("Guest Added - Enjoy Your Stay.")

  print("Guest Name is:", data1)
  print("Guest Room Number Is:", data2)
  print("Your Key Code Is:", data3)
  

Я хочу, чтобы вся вышеуказанная информация была добавлена в TXT. (Это работает), а затем также сможет его прочитать. который не будет работать.
Почему и как я могу исправить?

Ответ №1:

Вы должны использовать r вместо a чтения из файла:

 with open("Hotel.txt", "r") as file:
  

Ответ №2:

Вы используете a режим, который предназначен для добавления в файл, который вам нужно использовать r для чтения.

Во-вторых, я замечаю это

  for i in range (2,1000):
   file = open("hotel.txt", "a")
  

Вы открываете новый обработчик файла для каждой итерации цикла. Пожалуйста, откройте файл только один раз, а затем выполните любые операции, которые вам нужны, как показано ниже.

 with open("hotel.txt", "a") as fh:
    do your processing here...
  

Это имеет дополнительное преимущество, автоматически закрывая обработчик файлов для вас, в противном случае вам нужно закрыть обработчик файлов самостоятельно, используя fh.close() что вы не делаете в своем коде.

Также небольшое изменение в том, как вы используете input , вам не нужно печатать сообщение явно, вы можете сделать это с input помощью вот так.

 name = input("Enter your name: ")