Retirando extensão com Python e Dialog

27 11 2009

Pessal ontem na lista do Debian surgiu uma pequena duvida, retirar determinada extensão de arquivos encontrados num determinado diretório, enfim apareceram diversas soluções usando find, sed mas pensei numa solução um pouco mais amigavel usando python e dialog onde vc pode escolher as extensões e o diretorio a ser procurado, fiz o código ontem a noite quero melhorar ele e posto aqui tbm espero que possa ser util a alguem

#! /usr/bin/python
# -*- coding: iso-8859-1 -*-

# Criado em: "26/11/2009"
# Autor: MRSantos mrsantos@viaconnect.com.br
#
# A espera não é uma esperaça vazia,
# possui a certeza interior de alcançar seu objetivo...

import os
import os.path
import sys
import dialog

d = dialog.Dialog()
path_init = '/home/mrsantos/projetos/Script_python/src/txt/'

ext = [
	('exe', 'Executavel', 0),
	('jpg', 'Image JPG', 0),
	('gif', 'Imagem GIF', 0),
	('doc', 'Documento Word', 0),
	('xls', 'Documento excel', 0),
	('pdf', 'Documento PDF', 0),
	('txt', 'Arquivo Texto', 0),
	('bmp', 'Arquivo imagem', 0),
	('mp3', 'Arquivo audio', 0),
	('tar', 'Arquivo compactado audio', 0),
	('php', 'Arquivo PHP ', 0),
	]

def checklist(l):
	return d.checklist("Escolha as extencoes", height=30, width=54, list_height=len(l), choices=l)

def get_dir():
	code, value = d.fselect(path_init, height=10, width=40)
	if code:
		d.infobox('Abortado :( ')
		print
		sys.exit(1)
	else:
		if value: # escolhi um diretorio?
			return value
		else: # se eu nao passar diretorio ele pega corrente...
			return os.getcwd()

def rename_file(ext):
	path = get_dir()

	msg = ''
	for i in os.listdir(path):
		f, e = os.path.splitext(i)
		print e, f
		if e.lower().strip('.') in ext:
			os.rename(path+i, path+f)
			msg += "renomeando de %s --> %s\n" % (i, f)

	if msg != '':
		d.scrollbox(msg)
	else:
		s = ''
		for i in ext:
			s += '%s ' % i
		d.infobox("Extensoes nao encontradas: [ %s ]" % s)

def main():
	code, value = checklist(ext)
	print
	if not code:
		if value:
			rename_file(value)
			print

main()

imagem1

imagem2

imagem3

abraços,

Marc


Ações

Informação

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s




Seguir

Obtenha todo post novo entregue na sua caixa de entrada.