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()
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (1)
VMs e Interfaces de Rede desapareceram (13)
Como abrir o pycharm no linux [RESOLVIDO] (4)