Как показать данные из определенных файлов на основе введенных слов? - PullRequest
0 голосов
/ 15 января 2019

У меня есть программа, которая позволяет вводить данные и сохранять их в текстовые файлы. Я пытаюсь сделать так, чтобы пользователь вводил свое имя в начале, а затем любые введенные данные сохраняются под этим именем, поэтому, когда они снова вводят то же имя, он отображает данные. Но когда будет введено новое имя, данных не будет.

Приглашение для ввода имени

name=input("Enter name:")

Ниже позволяет пользователю вводить данные и сохранять их в текстовом файле, когда эта функция вызывается

def enterproduct():
    number=input("enter food: ")

    price=input("enter calories in food consumed: ")

    # should remove any leading or trailing spaces
    number = number.strip()
    price = price.strip()

    # write data to the file as one line (comma delimited)
    line =number+","+price+"\n" #put all the data together
    with open("inventory.txt","a") as file:
        file.write(line) #write product data
    file.close()

enterproduct()

Ниже вы можете увидеть данные, введенные в текстовые файлы при вызове

def seeproducts():
    print("ENTERED DATA")
    print("....................")
    products=[] 
    file = open("inventory.txt", "r")
    for line in file:
        products.append(line)
    file.close()

    for item in products: 
        print(item)
        currentline = item.split(",") #split data where there is a comma
        prodnumber = currentline[0]
        price = currentline[1]

seeproducts()

Выше приведен лишь небольшой пример моего кода, в других частях программы создано несколько текстовых файлов, все это можно увидеть здесь: https://pastebin.com/KsdqfBA9

Я ожидаю, что результат будет:

*Enter name: matt<br>
enter food: apple<br>
enter calories: 50*

*ENTERED DATA<br>
.............<br>
apple,50*

Затем, когда я перезапущу программу и снова введу matt:

*Enter name: matt<br>
enter food: orange<br>
enter calories: 30*

*apple,50<br>
orange,30*

Как видно выше, программа сохранила «яблоко, 50» в мат. Но если я введу новое имя, оно не должно показывать «яблоко, 50»

С кодом, показанным здесь, я получаю вывод, который не сохраняет данные, относящиеся к именам, а сохраняет все, независимо от введенного имени.

1 Ответ

0 голосов
/ 15 января 2019

Имя не сохраняется в той же строке, что и продукт или калории.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...