Para ejecutar en una consola desde python:
import os
os.system(orden)
donde orden es un string con cualquier comando válido:
orden = "ls *.png"
orden = "rm *.*~"
viernes, 14 de mayo de 2010
viernes, 16 de abril de 2010
Acentos en matplolib
Al fin aprendí como hacer acentos en matplotlib:
http://stackoverflow.com/questions/2406700/accented-characters-in-matplotlib
y
http://matplotlib.sourceforge.net/users/mathtext.html
tienen todos los detalles.
Hay 2 formas, pero lo más facil es:
1- Declarar caracteres "extraños" introduciendo como siempre en el encabezado
# -*- coding: utf-8 -*-
2- Declarar el string como unicode mediante u'string'
u"Brújula es esdrújula"
http://stackoverflow.com/questions/2406700/accented-characters-in-matplotlib
y
http://matplotlib.sourceforge.net/users/mathtext.html
tienen todos los detalles.
Hay 2 formas, pero lo más facil es:
1- Declarar caracteres "extraños" introduciendo como siempre en el encabezado
# -*- coding: utf-8 -*-
2- Declarar el string como unicode mediante u'string'
u"Brújula es esdrújula"
viernes, 19 de febrero de 2010
xargs
Tras cometer algunos errores, empiezo a apreciar la real utilidad de xargs.
Harta información en http://systemadmin.es/2009/04/uso-de-xargs-herramientas-unix-ii.
En general:
Crea una lista con los argumentos anteriores, para pasarlas al comando siguiente
Por ejemplo:
rm * es equivalente a ls * | rm xargs
Opciones importantes
-t: Muestra el comando con las opciones y luego lo ejecuta.
-n: Permite definir el número de argumentos que vemos a pasar a cada comando.
-I: Permite definir donde se van a definir los parámetros.
-P: Permite definir el número de procesos paralelos a lanzar al mismo tiempo.
Por ejemplo:
ls *.c3p0 | xargs -p python ejecutar.py
Muestra python ejecutar.py uno.c3p0 dos.c3p0 tres.c3p0 (y lo ejecuta)
ls *.c3p0 | xargs -n1 python ejecutar.py
Muestra python ejecutar.py uno.c3p0 (y lo ejecuta)
Muestra python ejecutar.py dos.c3p0 (y lo ejecuta)
Muestra python ejecutar.py tres.c3p0 (y lo ejecuta)
ls *.py | xargs -I python ARG uno.c3p0
(para aplicar varios archivos python sobre el archivo uno.c3p0).
ls *.c3p0 | xargs -P3 -n1 python ejecutar.py
Muestra python ejecutar.py uno.c3p0 (y lo ejecuta sin esperar finalización)
Muestra python ejecutar.py dos.c3p0 (y lo ejecuta sin esperar finalización)
Muestra python ejecutar.py tres.c3p0 (y lo ejecuta sin esperar finalización)
Harta información en http://systemadmin.es/2009/04/uso-de-xargs-herramientas-unix-ii.
En general:
Crea una lista con los argumentos anteriores, para pasarlas al comando siguiente
Por ejemplo:
rm * es equivalente a ls * | rm xargs
Opciones importantes
-t: Muestra el comando con las opciones y luego lo ejecuta.
-n: Permite definir el número de argumentos que vemos a pasar a cada comando.
-I: Permite definir donde se van a definir los parámetros.
-P: Permite definir el número de procesos paralelos a lanzar al mismo tiempo.
Por ejemplo:
ls *.c3p0 | xargs -p python ejecutar.py
Muestra python ejecutar.py uno.c3p0 dos.c3p0 tres.c3p0 (y lo ejecuta)
ls *.c3p0 | xargs -n1 python ejecutar.py
Muestra python ejecutar.py uno.c3p0 (y lo ejecuta)
Muestra python ejecutar.py dos.c3p0 (y lo ejecuta)
Muestra python ejecutar.py tres.c3p0 (y lo ejecuta)
ls *.py | xargs -I python ARG uno.c3p0
(para aplicar varios archivos python sobre el archivo uno.c3p0).
ls *.c3p0 | xargs -P3 -n1 python ejecutar.py
Muestra python ejecutar.py uno.c3p0 (y lo ejecuta sin esperar finalización)
Muestra python ejecutar.py dos.c3p0 (y lo ejecuta sin esperar finalización)
Muestra python ejecutar.py tres.c3p0 (y lo ejecuta sin esperar finalización)
miércoles, 3 de febrero de 2010
Apuntes de Bash - 2
Redirección
Cada programa tiene asociado una entrada, una salida y una salida de errores. Por defecto, estas son el teclado, la consola y la consola, resp.
Para cambiar el flujo de entrada, se usa <.
Para cambiar el flujo de salida, se usa > (o >> si no se desea sobreescribir).
Para cambiar el flujo de errores, se usa > (o >> si no se desea sobreescribir).
Ejemplos:
cat < txt_old > txt_new 2> txt_errores (sobreescribe los archivos txt_new y txt_errores si ya existen).
cat < txt_old >> txt_new 2>> txt_errores (agrega textos al final de archivos txt_new y txt_errores si ya existen).
Pipes
Para usar la salida estándar de un programa en la entrada estándar de otro programa se usa el pipeline: |
|
Ejemplos:
ls -la | more (lista los archivos con detalle y los muestra poco a poco).
ps -e | grep (lista los procesos y luego entre ellos selecciona los de nombre que contienen el
Cada programa tiene asociado una entrada, una salida y una salida de errores. Por defecto, estas son el teclado, la consola y la consola, resp.
Para cambiar el flujo de entrada, se usa <.
Para cambiar el flujo de salida, se usa > (o >> si no se desea sobreescribir).
Para cambiar el flujo de errores, se usa > (o >> si no se desea sobreescribir).
Ejemplos:
cat < txt_old > txt_new 2> txt_errores (sobreescribe los archivos txt_new y txt_errores si ya existen).
cat < txt_old >> txt_new 2>> txt_errores (agrega textos al final de archivos txt_new y txt_errores si ya existen).
Pipes
Para usar la salida estándar de un programa en la entrada estándar de otro programa se usa el pipeline: |
Ejemplos:
ls -la | more (lista los archivos con detalle y los muestra poco a poco).
ps -e | grep
Apuntes de Bash - 1
Comodines de reemplazo
? : Un carácter
* : Cero o más carácteres.
[conjunto] : caracteres en conjunto. Por ejemplo, [0-9], [a-z], [A-Z], o simplemente los carácteres deseados,[aeiou].
[!conjunto] : caracteres no en conjunto.
Por ejemplo, si queremos tener en orden los archivos 00.txt, 01.txt, ..., 09.txt, 10.txt, 11.txt, etc.. conviene hacer los siguiente:
ls [01]*
si solo hacemos
ls *
el orden no queda bien definido (puede mostrar 00.txt, 10.txt, 01.txt, 11.txt, etc.)
Una forma más exacta de listar los resultados es:
ls [01][0-9].txt
Comodín de expansión
{conjunto} : Fuerza la expansión de la palabra correspondiente usando las opciones del conjunto.
Ejemplos:
echo p{i,o}ng (entrega ping pong)
echo ha{b..d}a (entrega haba, haca, hada)
? : Un carácter
* : Cero o más carácteres.
[conjunto] : caracteres en conjunto. Por ejemplo, [0-9], [a-z], [A-Z], o simplemente los carácteres deseados,[aeiou].
[!conjunto] : caracteres no en conjunto.
Por ejemplo, si queremos tener en orden los archivos 00.txt, 01.txt, ..., 09.txt, 10.txt, 11.txt, etc.. conviene hacer los siguiente:
ls [01]*
si solo hacemos
ls *
el orden no queda bien definido (puede mostrar 00.txt, 10.txt, 01.txt, 11.txt, etc.)
Una forma más exacta de listar los resultados es:
ls [01][0-9].txt
Comodín de expansión
{conjunto} : Fuerza la expansión de la palabra correspondiente usando las opciones del conjunto.
Ejemplos:
echo p{i,o}ng (entrega ping pong)
echo ha{b..d}a (entrega haba, haca, hada)
jueves, 28 de enero de 2010
Para pillar errores o bugs rápidamente
Nada mejor que usar ipython y el debugger pdb, para que la consola tenga las variables donde se cayó:
ipython -pdb IterarGSH.py
ipython -pdb IterarGSH.py
Redimensionar imagenes
Este es un truco muy bueno, que no quiero que se me olvide:
$ sudo apt-get install nautilus-image-converter
instala en el nautilus de ubuntu una opción para redimensionar y rotar las fotos; muy bueno y práctico!
$ sudo apt-get install nautilus-image-converter
instala en el nautilus de ubuntu una opción para redimensionar y rotar las fotos; muy bueno y práctico!
Suscribirse a:
Entradas (Atom)