简体   繁体   English

使用Python编写文本文件

[英]Write a text file using Python

im working on this question: Write a Python program that will allow the user to order items from a menu in a restaurant. 我正在研究这个问题:编写一个Python程序,该程序将允许用户从餐厅的菜单中订购商品。

  1. The GUI should allow the customer to enter his or her name and telephone number. GUI应允许客户输入其姓名和电话号码。

  2. The system must generate a random number to indicate the Order Number. 系统必须生成一个随机数以指示订单号。

  3. The customer should be allowed to choose: (1) any items from the salad menu, (2) any one of the starter menu, (3) any one of the main courses 应当允许客户选择:(1)沙拉菜单中的任何项目,(2)任何入门菜单中的任何一项,(3)任何主菜中的任何一个

  4. When the user clicks the order button, the program should display the customer details (name and telephone number) as well as the details of the order based on his or her selections. 当用户单击订单按钮时​​,程序应显示客户详细信息(姓名和电话号码)以及基于其选择的订单详细信息。

  5. There should be a field that will display the total amount of the order. 应该有一个显示订单总金额的字段。

6. The information, that is the order number and the Total amount of the order must be written to a text file after a successful transaction. 6.成功交易后,必须将信息(即订单号和订单总额)写入文本文件。 Take care not to over write the previous information in the text file. 注意不要在文本文件中覆盖以前的信息。

My program is working fine but I dnt know how to do bullet 6. Which is write the order number ad total amount to a text file without overwritting. 我的程序运行正常,但我不知道该怎么做。项目6。即将订单号广告总额写到文本文件中,而不会改写。

Here is my code: #Create a menu program 这是我的代码:#创建菜单程序

 import random

 from Tkinter import *

 class App(Frame):
 #GUI application
  def __init__(self,master):
    Frame.__init__(self,master)
    self.grid()
    self.create_widgets()

  def create_widgets(self):
    #Label to welcome the user
    Label(self, text="Welcome to Costa's restaurant menu"
          ).grid(row=0, column=0, sticky=W)

    #Label to request the name of the customer
    Label(self, text="Customer Name: "
          ).grid(row=1, column=0, sticky=W)
    self.ent_cust = Entry(self)
    self.ent_cust.grid(row=1, column=1, sticky=W)

    #Label to request the telephone number:
    Label(self, text="Telephone number: "
          ).grid(row=1, column=2, sticky=W)
    self.ent_tel = Entry(self)
    self.ent_tel.grid(row=1, column=3, sticky=W)

    #Label to generate a random order number
    rnd = (int(random.randrange(50)) + 1)
    Label(self, text=("Your order number    " + str(rnd))).grid(row=0, column=2, sticky=W)
    n = 4
    #MENU items to choose from
    #the salads

    Label(self, text="Select any items from the salad menu: @R30").grid(row=n, column=0, sticky=W)
    self.has_greensalad = BooleanVar()

    # the green salad
    Checkbutton(self, text="Special mixed green salad"
                , variable=self.has_greensalad).grid(row=(n + 1), column=0, sticky=W)
    #the blue cheese salad
    self.has_bluecheese = BooleanVar()
    Checkbutton(self, text="Blue cheese salad"
                , variable=self.has_bluecheese).grid(row=(n + 1), column=1, sticky=W)
    #the greek salad
    self.has_greek = BooleanVar()
    Checkbutton(self, text="Greek salad"
                , variable=self.has_greek).grid(row=(n + 1), column=2, sticky=W)
    #the starters
    z = (n + 2)
    Label(self, text="Select any one of the starter menu: @60:"
          ).grid(row=z, column=0, sticky=W)
    #the oysters
    self.startermenu = StringVar()
    Radiobutton(self, text="6 oysters",
                variable=self.startermenu, value="6 oysters"
                ).grid(row=(z + 1), column=0, sticky=W)
    #the prawns
    Radiobutton(self, text="Prawns",
                variable=self.startermenu, value="Prawns"
                ).grid(row=(z + 1), column=1, sticky=W)
    #chicken wings
    Radiobutton(self, text="Chicken wings",
                variable=self.startermenu, value="Chicken wings"
                ).grid(row=(z + 1), column=2, sticky=W)
    #main course
    x = (z + 3)
    Label(self, text="Select any one of the main menu @ R150"
          ).grid(row=x, column=0, sticky=W)
    self.maincourse = StringVar()
    main_courses = ["Hamburger with chips", "Lasagne","Pasta Carbonara","Risotto alla milanese"]
    column = 0
    for main in main_courses:
        Radiobutton(self,
                    text = main,
                    variable=self.maincourse,
                    value = main
                    ).grid(row=(x + 1), column=column, sticky=W)
        column += 1
    q = (x + 5)
    Button(self, text='Place the Order', command=self.determine_order).grid(row=q, column=1, sticky=W)
    self.txt_order = Text(self, width=75, height=10, wrap=WORD)
    self.txt_order.grid(row=(q + 1), column=0, columnspan=4)
    Label(self, text="Total:  R",
         ).grid(row=(q + 11)
                , column=0, sticky=W)
    self.txt_total = Text(self, width=8, height=1, wrap=NONE)
    self.txt_total.grid(row=(q + 11), column=0)

 def determine_order(self):
    """ Fill text box with order based on user input. """
    totalprice = 0
    salads = 30
    starters = 60
    mainmenu = 150
    name = self.ent_cust.get()
    tel = self.ent_tel.get()
    salads = ""
    if self.has_greensalad.get():
        salads += "Special mixed Green Salad\n"
        totalprice = (totalprice + starters)
    if self.has_bluecheese.get():
        salads += "Blue cheese salad\n"
        totalprice = (totalprice + starters)
    if self.has_greek.get():
        salads += "Greek Salad\n"
        totalprice = (totalprice + starters)
    if (salads == ""):
        salads = "No salads ordered\n"
        totalprice = (totalprice + 0)
    startermenu = self.startermenu.get()
    if (len(startermenu) == 0):
        startermenu = "You didn't order a starter"
    else:
        totalprice = (totalprice + starters)
    maincourse = self.maincourse.get()
    if (len(maincourse) == 0):
        maincourse = "You didn't order a main course"
    else:
        totalprice = (totalprice + mainmenu)
    order = ((((((((name + " (") + tel) + ") ordered from the salad menu:\n") + salads) + "\nFrom the starters menu:\n ") + startermenu) + "\n\nFrom the main menu:\n") + maincourse)
    self.txt_order.delete(0.0, END)
    self.txt_order.insert(0.0, order)
    self.txt_total.delete(0.0, END)
    self.txt_total.insert(0.0, float(totalprice))


def main():
 root = Tk()
 root.title("Costa's Restaurant Menu")
 app = App(root)
 root.mainloop()    



main()

Use open with mode "a" to append the data. 使用以“ a”模式打开以附加数据。 Using mode "w" will overwrite existing data. 使用模式“ w”将覆盖现有数据。

with open('myfile', mode='a') as fp:
    fp.write('data')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 尝试在Python中使用f.write写入文本文件 - Attempting to Write to a text file using f.write in Python 使用python将文件的三列写入新文本文件 - Write three columns of file to new text file using python 如何在python中使用csv文件将文本写入Excel - How to write text onto excel using csv file in python 是否有可能多个用户使用python将数据写入文件(excel或文本) - is it possible for multiple users to write data into a file (excel or text) using python 使用python在每次迭代的文本文件中写入换行符 - write on newline in a text file on each iteration using python 如何使用相同的代码将unicode文本写入python 2和3中的文件? - How to write unicode text to file in python 2 & 3 using same code? 如何使用python将多个输入写入文本文件? - how to write multiple inputs to text file using python? 如何使用Python 3将文本写入以二进制模式打开的文件中? - How to write text into a file opened in binary mode using Python 3? 如何使用带有 python 的 Azure 函数写入 blob 容器中的文本文件? - How to write to a text file in a blob container using Azure function with python? 使用python将带逗号的文本写入CSV文件中的单元格 - Write text with comma into a cell in CSV file using python
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM