Enviado em 09/08/2016 - 03:30h
Preciso fazer um sistema simples de cadastro de carros e montadoras em Python. Os dados das montadoras e dos carros devem ser salvos em arquivos diferentes. O problema é que cada arquivo só salva apenas uma posição. Como faço para salvar n valores tanto para carros, quanto para montadoras?#""__encoding:utf-8__""
import os
import platform
def main():
bd_veiculos = inicializar_arquivo_veiculos()
bd_montadoras = inicializar_arquivo_montadoras()
opcao = -1
while opcao != 0:
print 'SISTEMA DE CADASTRO DE VEÍCULOS E MONTADORAS'
opcao = input('1 - VEÍCULOS \n2 - MONTADORAS \n3 - LIMPAR TELA \n0 - SAIR \nOPÇÃO: ')
if opcao == 1:
menu_veiculos(bd_veiculos)
elif opcao == 2:
menu_montadoras(bd_montadoras)
elif opcao == 3:
limpar_tela()
elif opcao == 0:
print 'VOCÊ SAIU DA APLICAÇÃO.'
else:
print 'OPÇÃO INVÁLIDA! DIGITE OUTRA OPÇÃO.'
def menu_montadoras(bd_montadoras):
while True:
print 'CADASTRO DE MONTADORAS'
opcao = input('1 - ADICIONAR \n2 - LISTAR \n3 - REMOVER \n4 - EDITAR \n5 - LIMPAR TELA \n0 - SAIR \nOPÇÃO: ')
if opcao == 1:
montadora = adicionar_montadora()
bd_montadoras.append(montadora)
print 'MONTADORA CADASTRADA COM SUCESSO!'
elif opcao == 2:
listar_montadoras(bd_montadoras)
elif opcao == 3:
remover_montadoras()
elif opcao == 4:
editar_montadoras()
elif opcao == 5:
limpar_tela()
elif opcao == 0:
print 'VOCÊ SAIU DA APLICAÇÃO.'
finalizar_arquivo_montadoras(bd_montadoras)
break
else:
print 'OPÇÃO INVÁLIDA! DIGITE OUTRA OPÇÃO.'
def menu_veiculos(bd_veiculos):
while True:
print 'CADASTRO DE VEÍCULOS'
opcao = input('1 - ADICIONAR \n2 - LISTAR \n3 - REMOVER \n4 - EDITAR \n5 - LIMPAR TELA \n0 - SAIR \nOPÇÃO: ')
if opcao == 1:
veiculo = adicionar_veiculos()
bd_veiculos.append(veiculo)
print 'VEÍCULO CADASTRADO COM SUCESSO!'
elif opcao == 2:
listar_veiculos(bd_veiculos)
elif opcao == 3:
remover_veiculos(bd_veiculos)
elif opcao == 4:
editar_veiculos(bd_veiculos)
elif opcao == 5:
limpar_tela()
elif opcao == 0:
finalizar_arquivo_veiculos(bd_veiculos)
print 'VOCÊ SAIU DA APLICAÇÃO.'
break
else:
print 'OPÇÃO INVÁLIDA! DIGITE OUTRA OPÇÃO.'
#Funções para Montadoras
def inicializar_arquivo_montadoras():
arquivo_montadoras = open('montadoras.txt','r')
linhas = arquivo_montadoras.readlines()
montadoras = []
for linha in linhas:
montadoras.append(eval(linha))
arquivo_montadoras.close()
return montadoras
def finalizar_arquivo_montadoras(lista):
arquivo_de_montadoras = open('montadoras.txt', 'w')
for montadora in lista:
arquivo_de_montadoras.write(str(montadora) + '\n')
arquivo_de_montadoras.close()
def adicionar_montadora():
nome = raw_input('NOME: ')
pais = raw_input('PAIS: ')
montadora = {'nome': nome, 'pais': pais}
return montadora
def listar_montadoras(bd_montadoras):
opcao = input('1 - LISTAR TODOS \n2 - POR NOME \n3 - LISTAR COM QUANTIDADE DE VEÍCULOS \n4 - LIMPAR TELA \nOPÇÃO: ')
montadoras_cadastradas = len(bd_montadoras)
#quantidade_veiculos = len(bd_veiculos)
if opcao == 1:
id_montadora = -1
print 'MONTADORAS CADASTRADAS ({})'.format(montadoras_cadastradas)
print 'ID \tNOME \tPAIS '
for i in range(len(bd_montadoras)):
id_montadora += 1
print '{} \t{} \t{}'.format(id_montadora,bd_montadoras[i]['nome'],bd_montadoras[i]['pais'])
elif opcao == 2:
print 'MONTADORAS CADASTRADAS ({})'.format(montadoras_cadastradas)
for i in range(len(bd_montadoras)):
print 'NOME'
print bd_montadoras[i]['nome']
#elif opcao == 3:
# print 'MONTADORAS CADASTRADAS ({})'.format(montadoras_cadastradas)
# print 'NOME \tPAÍS'
# for i in range(len(bd_montadoras)):
# print '{} \t{} \nQUANTIDADE TOTAL DE VEÍCULOS: {}'.format(bd_montadoras[i]['Nome'],bd_montadoras[i]['Pais'],quantidade_veiculos)#LEMBRETE: QTD VEICULOS
elif opcao == 4:
limpar_tela()
else:
print 'OPÇÃO INVÁLIDA! DIGITE OUTRA OPÇÃO.'
def remover_montadoras(bd_montadoras):
listar_montadoras(bd_montadoras)
print 'ESCOLHA A OPÇÃO 1 PARA LISTAR AS MONTADORAS COM O INDICE PARA REMORÇÃO.'
posicao = input('INDICE A SER REMOVIDO: ')
montadora_removida = bd_montadoras.pop(posicao)
print 'A MONTADORA {} FOI REMOVIDA COM SUCESSO!'.format(montadora_removida['nome'])
def editar_montadoras(bd_montadoras):
listar_veiculos(bd_montadoras)
indice = input('INDICE A SER ALTERADO: ')
bd_montadoras[indice] = adicionar_montadora()
print 'A ALTERAÇÃO FOI REALIZADA COM SUCESSO!'
#Funções para Veiculos
def inicializar_arquivo_veiculos():
arquivo_veiculos = open('veiculos.txt','r')
linhas = arquivo_veiculos.readlines()
veiculos = []
for linha in linhas:
veiculos.append(eval(linha))
arquivo_veiculos.close()
return veiculos
def finalizar_arquivo_veiculos(lista):
arquivo_de_veiculos = open('veiculos.txt', 'w')
for veiculo in lista:
arquivo_de_veiculos.write(str(veiculo) + '\n')
arquivo_de_veiculos.close()
def adicionar_veiculos():
nome = raw_input('NOME: ')
valor = raw_input('VALOR: ')
ano = input('ANO DE FABRICAÇÃO: ')
nome_montadora = raw_input('NOME DA MONTADORA: ')
veiculo = {'nome': nome, 'valor': valor, 'ano': ano, 'nome_da_montadora' : nome_montadora}
return veiculo
def listar_veiculos(bd_veiculos):
opcao = input('1 - LISTAR TODOS \n2 - POR NOME \n3 - POR MONTADORA \n4 - POR ANO \n5 - POR FAIXA DE PREÇO \n6 - LIMPAR TELA\nOPÇÃO: ')
veiculos_cadastrados = len(bd_veiculos)
id_veiculo = -1
if opcao == 1:
print 'VEICULOS CADASTRADOS {}'.format(veiculos_cadastrados)
print 'ID \tNOME \tVALOR \tANO \tNOME DA MONTADORA'
for i in range(len(bd_veiculos)):
id_veiculo += 1
print '{} \t{} \t{} \t{}'.format(id_veiculo,bd_veiculos[i]['nome'],bd_veiculos[i]['valor'],bd_veiculos[i]['ano'],bd_veiculos[i]['nome_da_montadora'])
elif opcao == 2:
print 'VEICULOS CADASTRADOS {}'.format(veiculos_cadastrados)
for i in range(len(bd_veiculos)):
print bd_veiculos[i]['nome']
elif opcao == 3:
print 'VEICULOS CADASTRADOS {}'.format(veiculos_cadastrados)
for i in range(len(bd_veiculos)):
print bd_veiculos[i]['nome_da_montadora']
elif opcao == 4:
print 'VEICULOS CADASTRADOS {}'.format(veiculos_cadastrados)
for i in range(len(bd_veiculos)):
print bd_veiculos[i]['ano']
elif opcao == 5:
print 'VEICULOS CADASTRADOS {}'.format(veiculos_cadastrados)
for i in range(len(bd_veiculos)):
bd_veiculos[i]['valor']#RESOLVER DEPOIS
elif opcao == 6:
limpar_tela()
else:
print 'OPÇÃO INVÁLIDA! DIGITE OUTRA OPÇÃO.'
def remover_veiculos(bd_veiculos):
listar_veiculos(bd_veiculos)
posicao = input('INDICE A SER REMOVIDO: ')
veiculo_removido = bd_veiculos.pop(posicao)
print 'O VEÍCULO {} FOI REMOVIDO COM SUCESSO!'.format(veiculo_removido['nome'])
def editar_veiculos(bd_veiculos):
listar_veiculos(bd_veiculos)
indice = input('INDICE A SER ALTERADO: ')
bd_veiculos[indice] = adicionar_veiculos()
print 'A ALTERAÇÃO FOI REALIZADA COM SUCESSO!'
def limpar_tela():
so = platform.system()
if so == 'Windows':
os.system('cls')
elif so == 'Linux' or so == 'Darwin':
os.system('clear')
if __name__ == '__main__':
main()
Vou voltar moderar conteúdos de Dicas e Artigos (0)
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Vou voltar moderar conteúdos de Dicas e Artigos (0)
Instalação Uefi com o instalador clássico do Mageia (0)
É cada coisa que me aparece! - não é só 3% (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta