[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Ajuda com script



Obrigado pelo script. Ainda não testei - no dia fiz o backup com "cp -Rf" ;)
Assim que testar informo.

Abraços,
Fabio.


> Luiz Guilherme Aldabalde wrote:
> Fabio,
>
> No script anterior tinha um problema de identação. Fiz uma revisão e ficou
> da seguinte forma :
>
> ####
> # Inicio script python
> ###
> # -*- coding: iso-8859-1 -*-
> """
>    script.py [1.0 - 20070223] : Copia arquivos de um dir para outro
>    Uso  :
>         script.py [arq_origem] [arq_destino]
>    Onde :
>         arq_origem  : Nome do arquivo com a lista de caminhos completos
>                       de cada arquivo a ser copiado
>         arq_destino : Nome do arquivo com a lista de caminhos completos
>                       do destino de cada arquivo
>
>    Obs :
>         Formato esperado para o arq_origem e arq_destino :
>             /dir/sub_dir_1/sub_dir_2/.../nome_arq
>         Exemplo :
>            /home/dd/endo/5_cpre/papilotomia/14.jpg
>
> """
> import os
> import getopt
> import sys
>
>
> def extrai(lista_linha):
>     """
>      Obtém um dicionário com o caminho dos arquivo.
>     """
>     dic_path = {}
>     for completo in lista_linha:
>         nome_file = completo.split("/")[-1].strip()
>         lista_nome_path = completo.split("/")[:-1]
>         dic_path[nome_file] = lista_nome_path
>         #print "dic_path[%s] = %s" % (nome_file, dic_path[nome_file])
>     return dic_path
>
> def copia_arq(lista_path, lista_path_dst, arq):
>     """
>        Copia o arquivo arq de lista_path ( path de origem) para o
> lista_path_dst ( path destino)
>     """
>     caminho = "/"
>     # Testa  path e cria o diretório , se necessário
>     for i in lista_path_dst:
>         caminho = caminho + "/" + i
>         if not(os.path.exists (caminho)):
>             os.popen("mkdir '%s'" % caminho)
>     from_path = "/" + ("/").join(lista_path) + "/" + arq
>     to_path = "/" + ("/").join(lista_path_dst) + "/" + arq
>
>     os.popen("cp '%s' '%s'" % (from_path, to_path))
>     print "arquivo %s copiado" % arq
>
>
> def main():
>     """
>         Funcao Principal
>     """
>     try:
>         opts, args = getopt.getopt(sys.argv[1:], "h", ["help"])
>     except getopt.error, msg:
>         print msg
>         print "Para ajuda use --help ou -h"
>         sys.exit(2)
>     for o, a in opts:
>         if o in ("-h", "--help"):
>             print __doc__
>             sys.exit(0)
>     # Se não receber exatamente 2 argumentos ...
>     if len(args) <> 2:
>         print __doc__
>         sys.exit(0)
>
>     arq1 = open(args[0], "r")
>     arq2 = open(args[1], "r")
>
>     lista_arq1 = arq1.readlines()
>     lista_arq2 = arq2.readlines()
>
>     arq1.close()
>     arq2.close()
>
>     dic_path_from = {}
>     dic_path_to = {}
>
>     dic_path_from = extrai(lista_arq1).copy()
>     dic_path_to = extrai(lista_arq2).copy()
>
>     for arquivo in dic_path_from.keys():
>         copia_arq(dic_path_from[arquivo],dic_path_to[arquivo], arquivo)
>
>
> if __name__ == "__main__":
>     main()
>
>
>
> ####
> # Fim Script python
> ####
>



Reply to: