Shura16 0 Denunciar post Postado Abril 2, 2015 Olá pessoal. Gostaria de ajuda dos colegas para converter um programa feito inicialmente em bat. Para melhorar um pouco usei Javascript e HTA para criar uma interface gráfica. Estava pensando em usar python e depois usar o py2exe para transformá-lo em um executável. Inicialmente pode ser em modo texto mesmo, mas posteriormente penso em implementar uma interface gráfica. O script é um utilitário de banco de dados que chama executáveis fornecidos pelo SGBD para a realização de reparação em bancos com problemas. O SGBD em questão é o Firebird. Gostaria de saber onde posso começar a estudar para poder implementar tal software, pois não seria justo o pessoal fazer para mim e eu também não aprenderia. Seguem os scripts: backup.bat @echo off if %2 == -s ( @echo on @echo *** mostrando os detalhes ) else ( @echo *** ocultando os detalhes @echo off ) @echo *** @echo *** Copiando banco de Dados @echo *** copy %1.FDB %1.COP /z @if errorlevel = 1 goto errocopia @goto continua :continua gfix -shut -force 0 %1.COP -User usuario -Password senha @if errorlevel = 1 goto continua @goto continua :continua gfix -online normal %1.COP -User usuario -Password senha gfix -v -f %1.COP -User usuario -Password senha @if errorlevel = 1 goto erro gfix -m -i %1.COP -User usuario -Password senha @if errorlevel = 1 goto erro gbak -g -b -z -v %1.COP %1.FBK -User usuario -Password senha @if errorlevel = 1 goto erro echo *** echo *** banco de Dados Copiado!!! echo *** goto fim :erro echo *** echo *** ERRO AO TENTAR COPIAR O banco DE DADOS echo *** :errocopia echo *** echo *** ERRO AO TENTAR COPIAR O ARQUIVO echo *** :fim PAUSE Minhas dúvidas aqui seriam como tratar esses @if errorlevel, como executar os comandos copy (comando do Windows), gfix e gbak (executáveis que eu tenho) e como capturar sua saída e como receber parâmetros. O echo é só substituir pelo print. Estava pensando em fazer métodos e trabalhar chamando-os pois não quero usar goto (nem sei se o python tem isso). No futuro gostaria de implementar uma interface gráfica, gostaria de sugestões de estudo para isso. Agradeço desde já. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Abril 2, 2015 Você pode utilizar o módulo subprocess p/ executar os comandos:https://pythonadventures.wordpress.com/2013/03/03/execute-command-show-its-output-get-its-exit-code/Quanto aos erros, eu colocaria um if dentro de um try-catch: try: processo = subprocess.Popen(shlex.split("copy banco.FDB banco.COP /z"), stdout=PIPE) processo=communicate() exit_code= processo.wait() if exit_code: raise Exception("Erro ao copiar banco") catch Exception e: print e.message Procure por Dive Into Python se quiser ler online. De livro eu conheço o Learning Python e o Programming Python. Compartilhar este post Link para o post Compartilhar em outros sites
Shura16 0 Denunciar post Postado Abril 2, 2015 Agradeço, teria alguma GUI sugerida?Já ouvi falar que python é compatível com GTK, também ouvi falar sobre o Tkinter e o wxPython.O que diria sobre estes?--------------- EDIT -------------------Testando o programa solicitado, ele só cai na opção da Exception. Obs.: no lugar de catch usei except e não é possível definir o nome da exception. def teste(): print("Executando o utilitário Python") cmd = "copy teste.txt teste.cop /z" print(cmd) try: process = Popen(shlex.split(cmd), stdout=PIPE) process.communicate() exit_code = process.wait() if exit_code: raise Exception("Erro ao copiar banco.") except Exception: print("O comando não pode ser executado") teste() Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Abril 2, 2015 kkkk Nem vi que escrevi errado. To fuçando em Java por aqui também, aí mistura tudo às vezes.https://docs.python.org/2/tutorial/errors.htmltry:....except Exception as e: ....Nunca trabalhei com GUI em Python. Compartilhar este post Link para o post Compartilhar em outros sites