У меня есть программа, которая позволяет вводить данные и сохранять их в текстовые файлы. Я пытаюсь сделать так, чтобы пользователь вводил свое имя в начале, а затем любые введенные данные сохраняются под этим именем, поэтому, когда они снова вводят то же имя, он отображает данные. Но когда будет введено новое имя, данных не будет.
Приглашение для ввода имени
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»
С кодом, показанным здесь, я получаю вывод, который не сохраняет данные, относящиеся к именам, а сохраняет все, независимо от введенного имени.