CientoSeis

Comunidad CientoSeis => Tecnología => Mensaje iniciado por: danyof en 02 de Noviembre de 2011, 12:58

Título: Renombrador masivo que haga...
Publicado por: danyof en 02 de Noviembre de 2011, 12:58
Tengo unas 300 o mas carpetas en las que en alguna parte del nombre aparece una cadena de fecha del tipo: 1-3-09 o tambien 1-03-09 o incluso 01-03-09... es decir, que lo unico que tienen en comun es que hay: (1 o 2 num)-(1 o 2num)-(2num).

Necesito un renombrador capaz de reconocer esa cadena y hacer una serie de cosas. Lo que quiero es pasar de: 1-3-09----> 2009-03-01 ( y que esto quede al comienzo del nombre)

Conoceis alguno que haga esto? Ya que he encontrado varios pero no te dan la opcion de "Uno o Dos numeros"

Gracias!! :D:D

Título: Re:Renombrador masivo que haga...
Publicado por: danyof en 02 de Noviembre de 2011, 13:04
Edito: He encontrado uno, el flexible renamer, pero de momento me estoy pegando con el a ver si consigo encontrar la forma exacta de hacerlo... si alguien me echa un cable con este u otro programa.. :D gracias"
Título: Re:Renombrador masivo que haga...
Publicado por: raul_isl en 02 de Noviembre de 2011, 15:48
Configurate un neoprogram :lol:
Título: Re:Renombrador masivo que haga...
Publicado por: Thylzos en 02 de Noviembre de 2011, 15:51
Cita de: danyof en 02 de Noviembre de 2011, 12:58
Tengo unas 300 o mas carpetas en las que en alguna parte del nombre aparece una cadena de fecha del tipo: 1-3-09 o tambien 1-03-09 o incluso 01-03-09... es decir, que lo unico que tienen en comun es que hay: (1 o 2 num)-(1 o 2num)-(2num).

Necesito un renombrador capaz de reconocer esa cadena y hacer una serie de cosas. Lo que quiero es pasar de: 1-3-09----> 2009-03-01 ( y que esto quede al comienzo del nombre)

Conoceis alguno que haga esto? Ya que he encontrado varios pero no te dan la opcion de "Uno o Dos numeros"

Gracias!! :D:D



Si usas Linux, hazte un script. Si estás en Windows... pos hazte un script.

¿Tienes instalado Python? Si es así, en un momento te lo hago yo. Batch no domino mucho, pero si alguien de aquí sí lo hace, seguramente te lo pueda escribir.

EDITO: No lo probé xD. Pero debería funcionar.


import os,sys,re

contents=os.listdir('.') #contents of the current directory
for i in contents:
if os.path.isdir(i) and (finded=re.search("\d{1,2}-\d{1,2}-\d{2}",i)) != None:
d,m,y=finded.group(0).split('-')[:3]
y='20'+y
if len(m)==1:
m='0'+m
if len(d)==1:
d='0'+d
new_name=i.replace(finded.group(0),y+'-'+m+'-'+d)
os.rename(i,new_name)


Guárdalo como "renamer.py", por ejemplo y ejecútalo en el directorio en que tengas las carpetas con esos nombres.
Título: Re:Renombrador masivo que haga...
Publicado por: danyof en 02 de Noviembre de 2011, 22:31
Woww, Muchisimas gracias Thylzos aunque no tengo ni idea de python ni tampoco lo tengo instalado. No obstante si que entiendo el codigo y veo lo que se puede hacer con el. Y aunque mas o menos mi problema lo he resuelto simplemente ejecutando el programa en los diferentes casos posibles (1 o 2) digitos, acabo de descubrir que se pueden hacer estas cosas en windows con programacion. Interesantiiisimo

Una pregunta, esto solo se puede hacer con python? No se podra con C o C++ o algo asi? ya que C si que se algo. Que a mi el mundillo de la programacion me gusta, y si encima lo puedo utilizar en mi dia a dia...  mucho mejor!!
Título: Re:Renombrador masivo que haga...
Publicado por: neoprogram en 02 de Noviembre de 2011, 22:43
Cita de: danyof en 02 de Noviembre de 2011, 22:31
Una pregunta, esto solo se puede hacer con python? No se podra con C o C++ o algo asi? ya que C si que se algo. Que a mi el mundillo de la programacion me gusta, y si encima lo puedo utilizar en mi dia a dia...  mucho mejor!!

Posible es, aunque es más recomendable el uso de scripts de shell o lenguajes del estilo python por simplicidad.
Título: Re:Renombrador masivo que haga...
Publicado por: danyof en 02 de Noviembre de 2011, 23:47
Y que tengo que tener instalado o como he de hacer para hacer estas cosas y poder utilizar estos scripts? ya sea para python o para C/C++?
Título: Re:Renombrador masivo que haga...
Publicado por: neoprogram en 03 de Noviembre de 2011, 05:15
Cita de: danyof en 02 de Noviembre de 2011, 23:47
Y que tengo que tener instalado o como he de hacer para hacer estas cosas y poder utilizar estos scripts? ya sea para python o para C/C++?

Para los scripts de shell/Batch no necesitas tener instalado nada: Son ficheros que interpreta una consola de comandos (en el primer caso una shell de Linux, como puede ser bash; en el segundo caso el intérprete de comandos de windows).

Un ejemplo de Hola mundo en estos casos podría ser el siguiente (el programa que tú necesitas sería más largo y a estas horas no te lo puedo poner de ejemplo  :allid: ):

Código ("shell --> holaMundo.sh") [Seleccionar]

#!/bin/bash
echo "Hola mundo"
read -p "Pulse una tecla para continuar..."

Donde:
#!/bin/bash - indica a la shell con qué se debe ejecutar el script (en este caso, con la propia shell)
echo "..." - imprime un mensaje por pantalla
read -p - muestra el mensaje indicado a continuación y espera introducción de una línea por parte del usuario

Este script funcionaría desde una shell bash, dándole permisos de ejecución.

Código ("batch --> holaMundo.bat") [Seleccionar]

@echo off
echo "Hola mundo"
pause

Donde:
@echo off - oculta las llamadas en el intérprete y solo muestra los resultados
echo "..." - imprime un mensaje por pantalla
pause - muestra un mensaje y espera una pulsación de teclado

Este script funcionaría desde un intérprete de comandos Windows (doble click o consola del sistema).


Para utilizar un script de Python, tienes que tener previamente instalado un intérprete de Python. Tras este paso, para ejecutar los scripts puedes llamarlos como argumento del intérprete (Ej: python holaMundo) o ejecutarlos directamente si los tienes asociados al mismo (en windows, en linux puedes incluir como primera línea #!/bin/python  para que ejecute directamente).

Si lo hicieras en Java, tendrías que tener una máquina virtual de java (JRE/JDK)... y si fuera en otro lenguaje interpretado, su intérprete correspondiente.

Para hacerlo en C/C++ necesitarías o bien una librería de expresiones regulares o hacerte la búsqueda de la cadena de texto manualmente y renombrar con la función correspondiente.

Título: Re:Renombrador masivo que haga...
Publicado por: Thylzos en 03 de Noviembre de 2011, 06:41
Cita de: danyof en 02 de Noviembre de 2011, 22:31
Woww, Muchisimas gracias Thylzos aunque no tengo ni idea de python ni tampoco lo tengo instalado. No obstante si que entiendo el codigo y veo lo que se puede hacer con el. Y aunque mas o menos mi problema lo he resuelto simplemente ejecutando el programa en los diferentes casos posibles (1 o 2) digitos, acabo de descubrir que se pueden hacer estas cosas en windows con programacion. Interesantiiisimo

Una pregunta, esto solo se puede hacer con python? No se podra con C o C++ o algo asi? ya que C si que se algo. Que a mi el mundillo de la programacion me gusta, y si encima lo puedo utilizar en mi dia a dia...  mucho mejor!!

Hombre, como dice Neo, poder, se puede. Pero no con la simplicidad que podrías hacerlo con unscript de Python.

Para tareas como esta, renombrar archivos masivamente o matar ciertos procesos molestos del sistema o cambiar el contenido de todo un conjunto de archivos, es más cómodo usar scritps. Son rápidos de escribir, sencillos y tienen las herramientas ya hechas. C/C++ o Java están bien para proyectos más grandes en que importa más el rendimiento y la calidad del programa.

Para escribir scripts en Python, necesitas su máquina virtual: http://python.org/download/ (http://python.org/download/)

Para escribir cosas en C/C++, un compilador. Te recomiendo CodeBlock (es un IDE, no un compilador, pero al caso...). http://www.codeblocks.org/downloads (http://www.codeblocks.org/downloads).

Si te interesa aprender C, te recomiendo hacerlo con este tutorial (lo encontré de casualidad y es muy completo y de muy buen nivel): http://c.learncodethehardway.org/book/ (http://c.learncodethehardway.org/book/)

Y para aprender python: http://learnpythonthehardway.org/book/ (http://learnpythonthehardway.org/book/)
Título: Re:Renombrador masivo que haga...
Publicado por: Genki en 03 de Noviembre de 2011, 10:16
podríais meteros a dar cursos de programación xDDD siguiendo el de peluche xD

yo este año estoy con Java, y el año pasado estuve con Pascal... pero vamos, vosotros vais a unos niveles superiores xD
Título: Re:Renombrador masivo que haga...
Publicado por: Thylzos en 03 de Noviembre de 2011, 15:45
Yo tengo medio acabado uno de C, pero no me voy a meter a escribir otro estando como estoy de materias y trabajo xD. Ahora, Peluche propuso hace tiempo (años...) una serie de cursos de programación que podíamos hacer entre él y yo. Si alguien se apunta a suplir la falta de Gambit, yo no tengo problema en colaborar. Pero no tengo tiempo para escribir uno solo.

Por otra parte, ¿Pascal? Creí que ya no se ensañaba más en la Universidad xD.
Título: Re:Renombrador masivo que haga...
Publicado por: neoprogram en 03 de Noviembre de 2011, 17:37
Cita de: Genki en 03 de Noviembre de 2011, 10:16
yo este año estoy con Java, y el año pasado estuve con Pascal... pero vamos, vosotros vais a unos niveles superiores xD

Cierto profesor mío no opina que vaya a buen nivel... se dedicaba a quitarme el ratón y borrarme trozos de programa mientras decía "no sabes C, no sabes Java"  :llori:

Cita de: Thylzos en 03 de Noviembre de 2011, 15:45
Por otra parte, ¿Pascal? Creí que ya no se ensañaba más en la Universidad xD.
Si... y todavía ronda por ahí el TurboPascal para programar, compilar y depurar.
Aunque lo mejor es el Plan 9: el S/O del futuro... :hehe: creo que el único repositorio de España de ese S/O es el ordenador de cierto profesor.
Título: Re:Renombrador masivo que haga...
Publicado por: danyof en 03 de Noviembre de 2011, 17:42
La programacion me gusta... el problema es sobretodo que no tengo demasiado tiempo.

Gracias por la info. Como dije, C ya se un poco, lo que he dado en la universidad, punteros, estructuras, reserva dinamica de memoria, ficheros y poco mas... otra cosa es que me acuerde.. xD

Pero habia leido cosas sobre C++, como que es de mas alto nivel, orientado a objetos, pero que permite bajar a bajo nivel como en C.

Python se que es de alto nivel, pero no he dado nada de ello.
Java tambien me encantaria aprender, ya que es muy sonado. Se algo de javascript que imagino que algo ayudara...

Por cierto, el curso ese de gambit lo segui durante un tiempo y estaba genial. A mi no me importaria colaborar si tuviera mas idea, el problema es que aqui se manejan niveles expertos.. :) y yo para lo que he llegado a programar era para no salirme del shell de linux... y lo que realmente quiero (y podria utilizar) es hacerme mis ejecutables y programitas para windows.

Por cierto thylzos. Mejor codeblocks que eclipse? Lo digo porque para programar en android cosa que tambien quiero aprender, recomiendan el eclipse. ¿que opinas?
Título: Re:Renombrador masivo que haga...
Publicado por: neoprogram en 03 de Noviembre de 2011, 17:54
Cita de: danyof en 03 de Noviembre de 2011, 17:42
[...] Lo digo porque para programar en android cosa que tambien quiero aprender, recomiendan el eclipse. ¿que opinas?

Yo codeblocks no lo he manejado. Lo de que te recomienden eclipse para android es posible que tenga que ver con el plugin para ese entorno que te facilitan desde la zona de desarrollo (que por cierto, no está mal).
Título: Re:Renombrador masivo que haga...
Publicado por: Thylzos en 03 de Noviembre de 2011, 17:58
CitarPero habia leido cosas sobre C++, como que es de mas alto nivel, orientado a objetos, pero que permite bajar a bajo nivel como en C.

C++ es una pasada. Si te interesa, mira de hacerte con Thinking in C++. Genial.

CitarJava tambien me encantaria aprender, ya que es muy sonado. Se algo de javascript que imagino que algo ayudara...

No necesariamente. Java y javascript no tienen ninguna relación, salvo una sintaxis parecida a la de C. Pero ambos son lenguajes bastante útiles de saber a nivel laboral.

CitarPor cierto, el curso ese de gambit lo segui durante un tiempo y estaba genial. A mi no me importaria colaborar si tuviera mas idea, el problema es que aqui se manejan niveles expertos..  y yo para lo que he llegado a programar era para no salirme del shell de linux... y lo que realmente quiero (y podria utilizar) es hacerme mis ejecutables y programitas para windows.

El curso de Gambit es muy bueno. Tiene otro en ogame.com.es sobre programación de videojuegos con Java para móviles. Está algo anticuado quizá, es de hace unos años, pero es muy interesante.

CitarPor cierto thylzos. Mejor codeblocks que eclipse? Lo digo porque para programar en android cosa que tambien quiero aprender, recomiendan el eclipse. ¿que opinas?

Claro, pero codeblocks es un IDE para C/C++ si no me equivoco. Eclipse es para varios lenguajes. Cualquiera de los dos es bastante bueno, pero si vas a programar en Android, sí, usa Eclipse. Como dice Neo, tiene un plugin muy interesante para eso. Pero la programación en Android se hace con Java y la máquina virtual de Google. Si te interesa, te recomiendo documentarte en el tema (la web de Android es muy completa y el ya renombrado Gambit subió en su momento un minitutorial de acercamiento), yo trabajé un tiempo programando para esa plataforma y es interesante y sencillo.
Título: Re:Renombrador masivo que haga...
Publicado por: neoprogram en 03 de Noviembre de 2011, 18:13
En mi universidad se organizaron unas jornadas de programación para móviles en las que se incluyó un minitutorial de programación Android, que se grabó en vídeo.
Si interesa, cuando el ponente de la autorización y el encargado haga el montaje, os paso el enlace por aquí.

También hay unas transparencias y un ejemplo de algo muy sencillito en la página donde se colgaban los recursos de las jornadas (http://ieeesb.etsit.urjc.es/sdi/i-jornadas-universitarias-de-programacion-movil) y algunos tutoriales en la página (http://madsa.es/aprende-a-programar-en-android/) de una de las asociaciones que lo organizaba.
Título: Re:Renombrador masivo que haga...
Publicado por: Genki en 03 de Noviembre de 2011, 20:33
yo el Pascal lo aprendí en Ing. Industrial xDD vamos, para gente que no se iba a especializar eso... aunque para aprender está muy bien xDD

y bueno, lo del tiempo, entre tú y neo(:$) y hacer una entrega mensual o algo no estaría mal xDD
Título: Re:Renombrador masivo que haga...
Publicado por: danyof en 03 de Noviembre de 2011, 23:45
Yo pascal no he dado en mi vida! y eso que estoy haciendo Ing Industrial! Ahi he aprendido C, lo que se de C, y bueno, ahora estoy a ver si veo algo de ensamblador... pero vamos, que por encima lo dare.

Se podria hacer algo de programacion en el foro, que veo que hay muuuuuucha gente que le intersa el tema. Aunque no sea tan desarrollado como lo que hacia gambit... :)
Título: Re:Renombrador masivo que haga...
Publicado por: danyof en 04 de Noviembre de 2011, 00:28
Se me olvido decir, neopogram, que a mi si que me interesaria eso de android que dices que tienes... el problema es que no tengo tiempo para ponerme con ello... De todas formas tu pasa enlaces, que asi voy recopilando para cuando tenga tiempo...

Si lo mas dificil es empezar, una vez que te pones...
Título: Re:Renombrador masivo que haga...
Publicado por: neoprogram en 04 de Noviembre de 2011, 00:33
Cita de: danyof en 04 de Noviembre de 2011, 00:28
Se me olvido decir, neopogram, que a mi si que me interesaria eso de android que dices que tienes... el problema es que no tengo tiempo para ponerme con ello... De todas formas tu pasa enlaces, que asi voy recopilando para cuando tenga tiempo...

Si lo mas dificil es empezar, una vez que te pones...

El tema del vídeo cuando esté lo pongo. Los otros enlaces están en mi mensaje anterior.
EhPortal 1.39.2 © 2025, WebDev