Como Salvar dados em arquivo com python?

1. Como Salvar dados em arquivo com python?

Juliana Marques
Jullyanna

(usa Ubuntu)

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()



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts