使用用户请求从文本文件读取和写入

时间:2016-11-23 14:50:20

标签: python text-files

我有一个代码可以打开文本文件并询问用户是否要输入gtin-8产品代码。但我无法找到产品的总成本。任何帮助将非常感谢!这是我的文本文件和代码......

文字档案:

gtin8   name    cost
34512340    plain brackets  £0.50
56756777    100 mm bolts    £0.20
90673412    L-shaped brackets   £1.20
76842309    Screwdriver £3.00
89432106    Radiator Key    £4.00
34267891    Panel Saw   £12.00
67532189    Junior Hacksaw  £7.00
98123470    Wrench  £8.00
18653217    Shovel  £8.00
67543891    Hammer  £10.00
23879462    File    £7.00

我的代码:

loop = True
productsfile = open("Products.txt", "r+")
recieptfile = open("Receipt.txt", "w")
search = productsfile.readlines()
while True:
        yesno = input("Would you like to type in a gtin-8 product code?(yes/no)" )
        if yesno == "yes":
             gtin8 = int(input("Please enter your GTIN-8 code: "))
             if len(gtin8) == 8:
                     while True:
                             for line in search:
                                     if gtin8 in line:
                                             productline = line
                                             recieptfile = open("Receipt.txt", "w") 
                                             recieptfile.writelines("\n" + "+")
                                             quantity = int(input("What is the quantity of the product you require? "))
                                             itemsplit = productline.split(",") 
                                             cost = float(itemsplit[3]) 
                                             totalcost = (cost)*(quantity) 
                                             recieptfile.writelines("Your total cost is: ", totalcost)
             else:
                     print("Here is your reciept", "reciept.txt", "r")

1 个答案:

答案 0 :(得分:0)

我修复了你的脚本,使其更具可读性和清晰度。基本上,在您不想再添加产品之前,它会继续询问产品。它还会检查产品是否存在。它将产品及其价格存储在字典中。

recieptfile = open("Receipt.txt", "w")
product_lines = open("Products.txt", "r").readlines()
products = [i.split() for i in product_lines][1:]
product_costs = dict()
for i in products:
    product_costs[i[0]] = float(i[-1][1:])

total_cost = 0
first_item = True
while True:
    yesno = input("Would you like to type in a gtin-8 product code?(yes/no)" )
    if yesno == "yes":
        gtin8 = input("Please enter your GTIN-8 code: ")
        if gtin8 in product_costs:
            quantity = int(input("What is the quantity of the product you require? "))
            price = product_costs[gtin8]
            cost = price * quantity 

            if not first_item:
                recieptfile.write("\t+\n") 
            recieptfile.write("{0}\t{1}".format(gtin8, cost))
            total_cost += cost
            first_item = False
        else:
            print("Product not found")
    else:
        recieptfile.write("\nYour total cost is: {0}".format(total_cost))
        break
recieptfile.close()
with open('Receipt.txt', 'r') as recieptfile:
    print("Here is your reciept:")
    print(recieptfile.read())