RenameFile

Publicado por Nicholas Amorim 12/12/2005

[ Hits: 5.944 ]

Download rename.py




Este script renomeia arquivos seguindo um padrão (comumente usado na internet).

Ele pode deixar todas as letras de um arquvo em minúsculas e substituindo espaços por underlines.

Também pode renomear com prefixo e/ou sufixo numericamente sequencial.

Bem útil para empresas que trabalham com a criação e manutenção de sites da internet. (Eu trabalho em uma e sei o quanto é útil)

O código está meio que sem uma organização estruturada. Mas nada que impeça o pleno funcionamento.

  



Esconder código-fonte

import os
import string
import sys

try:
  while not os.access(sys.argv[2],1):
      print "\nO diretorio especificado nao existe, tente novamente"
      break  
  if sys.argv[1] == '-h':
    print "Ajuda do programa:\nSintaxe: rename.py [argumento] [diretorio] [prefixo/sufixo] [sufixo]\n\
    \n-h\tMostra essa ajuda\n\
    \n-i\tModo Interativo, ideal para a primeira vez de uso\n\
    \n-p\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando o prefixo indicado (numericamente sequencial)\n\
    \n-s\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando o sufixo indicado (numericamente sequencial)\n\
    \n-a\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando prefixo e sufixo indicados (numericamente sequencial)\n\
    \n-e\tSubstitui os espacos por underlines e deixa tudo minusculo nos arquivos\n\tdo diretorio especificado"

  elif sys.argv[1] == '-i':
    diretorio = raw_input("Digite o diretorio onde serao feita as alteracoes: ")

    while not os.access(diretorio, 1):
      print 'O diretorio nao existe! Tente novamente'
      diretorio = raw_input("\nDigite o diretorio onde serao feita as alteracoes: ")
    else:
      os.chdir(diretorio)
      
      print "Escolha as opcoes abaixo:\n\n\
      1. Substituir espacos por underlines e deixar tudo minusculo\n\
      2. Renomear arquivos sequencialmente\n\n"
      
      opcao = raw_input("Qual opcao ira ser, newbaboy ? ")
      
      if opcao == '1':
        print "Os seguintes arquivos serao modificados: \n"
        print os.listdir(diretorio)
        confirm = raw_input("Deseja prosseguir ? S/N: ")
        if confirm == 'S' or 's':
          try:
            for arquivo in os.listdir(diretorio):
              x = arquivo
              os.rename(x,string.lower(x))
              for arquivo in os.listdir(diretorio):
                x = arquivo
                s = string.split(x)
                z = string.join(s,'_')
                os.rename(x,z)
          except OSError:
                pass
          print "Operacao realizada com sucesso! Os arquivos modificados ficaram assim:\n"
          print os.listdir(diretorio)
              
              
      elif opcao == '2':
        y = 1
        prefixo = raw_input("Coloque prefixo, se houver. Enter para prosseguir ")
        sufixo = raw_input("Coloque sufixo se houver. Enter para prosseguir ")
        for arquivo in os.listdir(diretorio):
          x = arquivo
          s = string.split(x,'.')
          if prefixo and sufixo:
            os.rename(x,prefixo+str(y)+sufixo+'.'+s[1])
            y = y + 1
          elif prefixo:
            os.rename(x,prefixo+str(y)+'.'+s[1])
            y = y + 1
          elif sufixo:
            os.rename(x,str(y)+sufixo+'.'+s[1])
            y = y + 1
          else:
            os.rename(x,str(y)+'.'+s[1])
            y = y + 1
  
  elif sys.argv[1] == '-p' and sys.argv[2]:
    y = 1
    try:
      prefixo = sys.argv[3]
      diretorio = sys.argv[2]
      os.chdir(diretorio)
      for arquivo in os.listdir(diretorio):
        x = arquivo
        s = string.split(x,'.')
        os.rename(x,prefixo+str(y)+'.'+s[1])
        y = y + 1
      print "\nOperacao realizada com sucesso!"
    except IndexError:
        print "\nPrefixo invalido"
  
  elif sys.argv[1] == '-s' and sys.argv[2]:
    y = 1
    try:
      sufixo = sys.argv[3]
      diretorio = sys.argv[2]
      os.chdir(diretorio)
      for arquivo in os.listdir(diretorio):
        x = arquivo
        s = string.split(x,'.')
        os.rename(x,str(y)+sufixo+'.'+s[1])
        y = y + 1
      print "\nOperacao realizada com sucesso!"
    except IndexError:
        print "\nSufixo invalido"
  
  elif sys.argv[1] == '-a' and sys.argv[2]:
    y = 1
    try:
      diretorio = sys.argv[2]
      prefixo = sys.argv[3]
      sufixo = sys.argv[4]
      os.chdir(diretorio)
      for arquivo in os.listdir(diretorio):
        x = arquivo
        s = string.split(x,'.')
        os.rename(x,prefixo+str(y)+sufixo+'.'+s[1])
        y = y + 1
      print "\nOperacao realizada com sucesso!"
    except IndexError:
      print "\nTem certeza que digitou ambos ? (Prefixo e sufixo)"
    
except IndexError:
  print "\nO argumento -h mostra a ajuda do programa"

Scripts recomendados

Expressão regular com input STDIN

Serialização em Python usando pickle

Them para fluxbox

Leitor de arquivo

Pyconv - Conversor de codificação de caracteres


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts