-1
I am developing a simple program in python, where I need to manage the stock of a store. When I try to have the products saved in a single list, they end up being saved in several, making it impossible to read the . txt for product research! Can anyone help me? I’ve been stuck in this for about eight hours. The program is simple and has to be done in python, for a college job. THANK YOU!!
import sys, json
arquivo = open('LOJA.txt', 'a+')
print("### Loja do Iago e Do Pedro ###")
produto=[]
def menu():
opcao = int(input('### MENU ###\n1-Cadastro de Produtos\n2-Pesquisar Produtos\n3-Alterar um Produto\n4-Remover um Produto\n5-Listar Produtos em Ordem ALFABÉTICA\n6-Listar Produtos Por CÓDIGO\n'))
if opcao==1:
cadastro()
elif opcao==2:
nome=input('Digite o nome do produto: ')
pesquisa(nome)
elif opcao==3:
alterar()
elif opcao==4:
nome=input('Digite o nome do produto que voce deseja remover: ')
Remover(nome)
elif opcao==5:
alfabetica()
elif opcao==6:
codigos()
def cadastro():
# arquivo = open('LOJA.txt', 'a+')
qtd=int(input('Quantidade de produtos a serem cadastrados: '))
for x in range(qtd):
produto=[]
nome = input('Nome do produto: ')
codigo = input('Codigo do produto: ')
quantidade = input('Quantidade do produto: ')
produto = json.dumps((nome, codigo, quantidade))
with open('LOJA.txt', 'a+') as file:
file.write(str(produto))
file.close()
def pesquisa(nome):
# arquivo = open('LOJA.txt', 'r')
produto = []
with open('LOJA.txt','r') as file:
produto = arquivo.readlines() # readlinesssssss
# produto = eval(file.read())
for i in range(len(produto)):
if nome in produto[i][0]:
print('Nome: %s\nCódigo: %s\nQuantidade: %s' % (produto[i][0], produto[i][1], produto[i][2]))
else:
print('Produto não encontrado!')
file.close()
def alterar():
arquivo = open('LOJA.txt', 'a+')
produto = []
with open('LOJA.txt','a+') as file:
produto = eval(file.read())
for i in range(len(produto)):
if nome in produto[i][0]:
print('Nome: %s\nCódigo: %s\nQuantidade: %s' % (produto[i][0], produto[i][1], produto[i][2]))
else:
print('Produto não encontrado!')
file.close()
def Remover(nome):
arquivo = open('LOJA.txt', 'w+')
produto = []
with open('LOJA.txt','r') as file:
produto = eval(file.read())
# produto = json.load(file)
for i in range(len(produto)):
if nome in produto[i][0]:
del produto[i]
else:
print('Produto não encontrado')
file.close()
def alfabetica():
arquivo = open('LOJA.txt', 'r')
with open('LOJA.txt','r') as file:
produtos=eval(file.read())
produto_ordenados = sorted(produtos)
print(produto_ordenados)
file.close()
def codigos():
arquivo = open('LOJA.txt', 'r')
with open('LOJA.txt','r') as file:
produto=eval(file.read())
produtos=[produto]
codigos_ordenados = sorted(produtos)
print(codigos_ordenados)
file.close()
menu()
I took a look at your program.. From what I understand you’re conflicted with the list
global
Products and the listlocal
(created within a function) Products. My suggestion is to change the names of the lists, all have the same name, ai vc vi encontrar onde a lista esta sendo re-escrita onde não deve.– Gui Reis
I suggest you work with local lists only, strip the
produto = [ ]
on line 4 and works with the lists within the functions. in case you need to use a local list elsewhere,return
the list or put asglobal
(otherwise)– Gui Reis