
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()
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Instalar Dual Boot, Linux+Windows. (6)
Conky, alerta de temperatura alta (17)
De volta para o futuro - ou melhor, para o presente (parte 2) (3)









