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

Re: [OT] Ajuda com script



Fabio,

Eui gosto muito do Python, e fiz o seguinte script  para a sua situação:
####
# Inicio script python
###
import os

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
   

arq1 = open("arq1.txt", "r")
arq2 = open(" arq2.txt", "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)

####
# Fim Script python
####

Observe que eu nâo coloquei nenhum tratamento de erro, por isso os arquivos de origem devem existir e você deverá rodar estre script como usuário que tenha pemrissão de escrita no path de destino.

Espero ter lhe ajudado.

Abraços,
Luiz Guilherme

On 2/22/07, Fabio Guerrazzi <debian@fg.med.br > wrote:
Pessoal,

Tenho dois arquivos com a seguinte estrutura:

Arquivo 1:
/home/dd/endo/1_esofago/Barrett/Barrett longo-861890-0_04.bmp
/home/dd/endo/5_cpre/papilotomia/14.jpg
/home/dd/endo/2_estomago/variz gastrica sgto em jato/43.JPG
etc...

Arquivo 2:
/home/dd/admin/imagens/1_esofago/Barrett/Barrett longo-861890-0_04.bmp
/home/dd/admin/imagens/5_cpre/papilotomia/14.jpg
/home/dd/admin/imagens/2_estomago/variz gastrica sgto em jato/43.JPG
etc...

Eu preciso mover todos os arquivos listados em 1 para o endereço
especificado em 2.
Nem todos os diretórios destino existem, e como se pode ver, alguns nomes
contém espaços ou maiúsculas.

Eu consegui gerar os arquivos, porém não tenho idéia de como contruir o
script.
Agradeço ajuda,

--
Fabio.


--
To UNSUBSCRIBE, email to debian-user-portuguese-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: