#-*- 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 ' 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 ' 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 ' 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()