Python代码不是打印txt的内容吗?

时间:2019-03-08 12:10:00

标签: 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中。 (有效),然后也可以阅读。这是行不通的。 为什么以及如何解决?

2 个答案:

答案 0 :(得分:5)

您必须使用r而不是a+来读取文件:

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

答案 1 :(得分: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: ")