rendered paste body#-*- coding: latin1 -*-
from sys import exit
from string import join
class DataLoad(object):
PlanilhaPath = 'dump_inicial.csv'
CategoriasPath = 'categorias.csv'
TemplatePath = 'template.sql'
DumpPath = 'dump.sql'
TableLocacao = ('fk_categoria','proprietario','responsavel','nascimento','cpf','rg','profissao','locacao','endereco','bairro','cidade','estado','cep','ddd','telefone','ddd_celular','celular','ddd_comercial','telefone_c','ddd','fax','email','observacoes','valores','som','animais','pesquisa','posicao','fotografo','fotos_data','banco_nome','banco_cpf','banco_banco', 'banco_agencia', 'banco_conta')
DbName = 'primeiraproducao_com_br_-_site'
#C:\Arquivos de programas\eclipse\workspace\data_load
def __init__(self):
print 'Processando...'
self.DictCategorias = {}
Data = {}
Data['DbName'] = self.DbName
print 'Dicionario Estrutural carregado.'
Data['Categorias'] = self.Load('categorias', self.CategoriasPath)
print 'Categorias carregadas.'
Data['Dados'] = self.Load('planilha', self.PlanilhaPath)
print 'Planilha Carregada.'
try:
File = open(self.TemplatePath)
Template = File.read()
File.close()
except:
raise
print '<ERRO> Ocorreu um erro no carregamento do arquivo TEMPLATE.'
exit(1)
else:
print 'Template carregado.'
Template = Template % Data
try:
File = open(self.DumpPath, 'wb')
File.write(Template)
File.close()
except:
print '<ERRO> Ocorreu um erro na gravação do arquivo DUMP.'
else:
print 'Arquivo SQL gravado.'
def __del__(self):
print 'Ok.'
def Load(self, who, CsvPath):
try:
File = open(CsvPath)
CsvFile = File.readlines()
File.close()
except:
print '<ERRO> Ocorreu um erro no carregamento do arquivo CSV.'
else:
if who == 'planilha':
return self.LoadPlanilha(CsvFile)
elif who == 'categorias':
return self.LoadCategorias(CsvFile)
def LoadPlanilha(self, CsvFile):
del CsvFile[0] #deleta rotulos
List = []
for Line in CsvFile:
Dados = ()
Campos = Line.split('|')
Campos[0] = self.DictCategorias[Campos[0].upper().strip(' ')] #troca da categoria por índice
Campos[13] = Campos[13]+Campos[14] #DDD + telefone
Campos[15] = Campos[15]+Campos[16] #DDD_celular + celular
Campos[17] = Campos[17]+Campos[18] #DDD_comercial + telefone_comercial
Campos[19] = Campos[19]+Campos[20] #DDD_fax + fax
del Campos[14], Campos[16], Campos[18], Campos[20]
for Item in Campos:
if isinstance(Item, str):
Temp = Item.replace('\n','').strip(' ')
else:
Temp = Item
Dados = Dados.__add__((Temp,))
List.append(str(Dados))
return join(List, ',\n')
def LoadCategorias(self, CsvFile):
List = []
Index = 0
for WordLine in CsvFile:
WordLine = WordLine.replace('\n','').strip(' ')
if not self.DictCategorias.has_key(WordLine):
Index += 1
self.DictCategorias[WordLine.upper()] = Index
List.append("('%s')" % WordLine)
return join(List, ',\n')
if __name__ == '__main__':
load = DataLoad()