[Programación]Como traducir esto de perl a python...
Ernesto Savoretti
esavoretti en gmail.com
Lun Oct 19 19:52:22 ARST 2009
2009/10/19 Horacio Castellini <horacio9573 en yahoo.com.ar>:
> Holas...
> Tengo varios códigos de leen archivos en CSV estilo "valor1","valor2",etc...
> que están en perl... en realidad los había programado en AWK y luego lo traduje a perl con a2p... para ver como se podía manejar las expresiones regulares y las E/S... como para python no hay un traductor awk -- python que yo sepa... acá mando las porciones de código que quiero traducir para que alguien me de una mano,,, si puede...
>
> los archivos tiene formato NA.Y0X donde Y está relacionado con la frecuencia de un motor y X con las repeticiones de la medición de la misma muestra... luego mientras leía el contenido del archivo en el while()... borraba las "..." y sustituía las ',' por espacios... como no se sabe la cantidad de filas de datos en el archivo esa la guardaba en la variable NR...
>
> print "Archivo ".$ARGV[0]."\n";#Archivo que abre en lugar de STDIO!!
> $frec=1;
> $escala=0.03;
> # Si no se dice nada usa por defecto (1,0.03)
> # como argumento de entrada... OJO!
> if($ARGV[0]=~/[10[1-3]/) {
> $frec=1;
> $escala=0.03;
> }
> if($ARGV[0]=~/20[1-3]/) {
> $frec=2;
> $escala=0.015;
> }
##################################
import sys
import re #módulo para regex
print "Archivo " + sys.argv[0] + "\n"
#Observación: en python sys.argv[0] contiene el nombre del script que
se está ejecutando, igual que en C.
#Me parece que deberías estar usando sys.argv[1], si lo que buscás es
el primer parámetro.
#En Perl no será igual?
argdeentrada = sys.argv[1]
if re.match(r"10[1-3]", argdeentrada):
frec = 1
escala = 0.03
#Los bloques en Python se definen por indentación, no usa begin/end ni
corchetes.
##################################
....
Espero que te de una idea.
Me resulta un poco complicado por mi escaso/nulo conocimiento de Perl.
Para tu caso, que pareciera ser el inverso, te recomiendo el tutorial
de Python que fue desarrollado por la gente de PyAr, y en mi opinión
está excelente:
http://docs.python.org.ar/tutorial/contenido.html
Saludos
--
Ernesto Savoretti
Más información sobre la lista de distribución Programacion