Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com o módulo SHUTIL entre outras "cozas"


Guest Hanniel

Pergunta

Olá a todos.Estou com um problema em um script que estou implmentando.a intenção do memsmo é criar pastas com o nome dos artistas e jogar lá dentro as respectivas músicas desse artista, em uma pásta repleta de músicas nomeadas no formato "[Nome do artista] - [Nome da música]".Tudo vai bem,exceto por dois pontos:

1- Por algum motivo, os arquivos são copiados apenas quando é a primeira música do artista.Se a pasta já existir (já foi organizada outra música previamente), a cláusula IF nem é acessada!

2- O módulo SHUTIL simplesmente não quer funcionar! Não consigo de maneira alguam copiar os arquivos.As pastas são criadas,mas ficam vazias.

Segue o código:

# -*- coding: cp1252 -*-

#Organizador de MP3 v.1.0

#Organiza vídeos que tenham nome da forma: [Artista] - [Nome da música]
#E aloca da forma:
#C:\...\[Artista]
#            * [Artista] -[Nome da música].mp3

import glob
import os
import shutil
import string

lista=glob.glob("*.mp3")

for i in lista:
    artista = i[0:string.find(i,'-')]

    if artista in os.listdir(os.getcwd())== True:
        try:
            #copia o arquivo i para a pasta
            dirs=os.path.join(os.getcwd(),artista)
            print "==> "+dirs+" já existe."
            fonte=os.path.join(os.getcwd(),i)
            destino=os.path.join(dirs,i)
            print ">>"+dirs+"\n   *"+i
            shutil.copy(fonte,destino)

        except Exception:
            pass
            
       
    else:
        try:
            #cria a pasta e depois copia o arquivo
            os.mkdir(artista)
            dirs=os.path.join(os.getcwd(),artista)
            fonte=os.path.join(os.getcwd(),i)
            destino=os.path.join(dirs,i)
            print "==> Criado diretório "+dirs
            print ">>"+dirs+"\n   *"+i
            shutil.copy(fonte,destino)

        except Exception:
            pass
            
       
print ""

Aguardo resposta.Abraços! o/

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Como eu achei o seu código muito confuso eu refiz:

import glob
import os
import shutil

dir_trabalho = '/home/cpn/workspace/teste' #'caminho/para/diretorio'
os.chdir(dir_trabalho)
lista = glob.glob("*.mp3")
print lista

for linha in lista:
   hifen = linha.find('-')
   artista = linha[0 : hifen -1]
   musica = linha[hifen + 2 :]
   
   if artista not in os.listdir(dir_trabalho):
      os.mkdir(artista)
      print '==> Criado diretório "%s"' % artista
   else:
      print '==> O diretório "%s" já existe' % artista
      
   print linha
   shutil.copy2(linha, os.path.join(artista, musica))

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...