viernes, 29 de octubre de 2010

Mas Scripts

Hola compañeros, a continuación les mostraré mas programas que realice en los lenguajes AWK y PYTHON.

Lenguaje AWK
En este lenguaje cree dos programas más. Como ya lo había mencionado antes, AWK es un lenguaje que es muy eficiente para bases de datos, ya que con tan solo unas líneas de código, es posible acceder a una base de datos y realizar distintas instrucciones.

Uno de los programas que realicé en AWK, lo llame sumarregistros.awk, y es el siguiente:

#!/usr/bin/awk

BEGIN{suma = 0}
{sum = suma + NR}
END{print "El archivo contiene", sum, "registros"}

Lo que este programa realiza, es, sumar el numero de registros que se pueden encontrar en una base de datos, es decir, el numero total de lineas que contiene el archivo o base de datos y después imprime ese número de registros.
Este código comienza con la expresion BEGIN y termina con la expresion END, esto hace que el programa realice acciones antes de ir (procesar) al primer registro; si estas expresiones no se colocaran, entonces el programa me imprimiría el numero de cada registro (linea), es decir, si el archivo contiene 4 lineas o registros, entonces me imprimirá 4 veces, El archivo contiene 1 registros y asi hasta llegar al número 4.

Iniciamos con suma = 0, y después coloque sum = suma + NR, que es aquí donde se obtiene la suma total de registros del archivo o base de datos.

NR (Number of record, Número de registro) es una variable predefinida, que contiene el numero de registros del archivo o base de datos.

Y al final del código coloque {print "El archivo contiene", sum, "registros"}, que esto hace que se impriman en la terminal el número de registros.

A continuación, les muestro el archivo que utilicé para ejecutar este programa, al cual nombre como arch.txt.

arch.txt

Como vemos, este archivo llamado arch.txt, solo contiene 4 registros ó lineas.

Para ejecutar este programa tecleeamos lo siguiente en la terminal:
awk -f sumarregistros.awk arch.txt


Ejecución


Otro programa que realicé en AWK, es uno que procesa o lee cada linea de un archivo o base de datos, e imprime el número total de campos que hay en cada uno de los registros o lineas del archivo. El

El código del programa, al cual nombre como linea.awk, es el siguiente:

#!/usr/bin/awk

{print "Procesando linea"}
{print "La linea", NR, "contiene", NF, "campos"}

Como ya sabemos NR es el número de registros de un archivo, pero ahora utilicé además de esta variable, a la variable NF(Number of fields, Número de campos), que es el número de campos que contiene cada registro que se va leyendo o procesando de un archivo o base de datos.
Este programa, en la parte de {print "La linea", NR, "contiene", NF, "campos"}, me va imprimiendo el número de cada línea del archivo, junto con el número total de campos que contiene esta linea.
Los campos son el total de palabras que contiene cada registro o línea, que son delimitados por el caracter "espacio".

A continuación, les muestro el archivo que utilicé para este programa, el cual nombre como archivo.txt.

archivo.txt


Podemos ver, que la linea 1 contiene 4 campos, la linea 2 contiene 3 campos, la linea 3 contiene 5 campos, la linea 4 contiene 6 campos y la linea 5 contiene 4 campos.

Para ejecutar este programa, tecleamos en la terminal lo siguiente:
awk -f linea.awk archivo.txt


Ejecución


Lenguaje PYTHON
En el lenguaje Python realice varios programas utilizando un módulo o libreria llamada os, la cual contiene comandos para crear carpetas, borrar carpetas, eliminar archivos, cambiar nombre a un archivo, ver si algun archivo existe o no, etc.

Uno de los programas que realicé en Python, lo llame oscrear.py, y es el siguiente:

#!usr/bin/python

import os

b = raw_input("\nNombre de la carpeta que desea crear: ")

os.mkdir(b)

print("Creando carpeta..."), b


Lo que este programa realiza, es crear una carpeta.
Principalmente, se coloca el módulo o librería os, colocandola así import os.
La parte de b = raw_input("\nNombre de la carpeta que desea crear: "), pide al usuario que introduzca el nombre de la carpeta que desea que se cree.
Si en vez de colocar raw_input(""), se colocara int(input("")), al momento de que se te pide el nombre de la carpeta a crear, aparece un error, ya que se esta introduciendo el nombre de una carpeta, es decir, se estan introduciendo letras, y es por eso que se debe colocar raw_input(""), ya que esta función lee la entrada, en este caso, el nombre de la carpeta a crear y la convierte en una cadena.

El comando os.mkdir(b), es el que reliza la creación de la carpeta.
b es la carpeta a crear, y es por eso que se coloca dentro de (), en el comando os.mkdir, para que el comando cree a b, es decir, cree a la carpeta con el nombre que el usuario haya introducido.

A continuación les muestro la imagen en donde aún no se ha creado la carpeta.


Para ejecutar este programa, introducimos en la terminal lo siguiente:
python oscrear.py


Ejecución

En este caso, el nombre de la carpeta que se creó se llama Trabajos, y a continuación les muestro la imagen en donde se muestra que esta carpeta ya ha sido creada.


Otro programa que realice en Python lo llame osborrac.py, y es el siguiente:

#!/usr/bin/python

import os

c = raw_input("\nIntroduzca el nombre de la carpeta que desea eliminar: ")

os.rmdir(c)

print "Borrando...", c

Este programa lo que realiza es eliminar una carpeta que el usuario introduzca, por eso es c = raw_input("\nIntroduzca el nombre de la carpeta que desea eliminar: "), donde c, es la carpeta que se desea que sea eliminada. E igualmente utilice raw_input(), ya que se introduce también el nombre de una carpeta (cadena), pero en este caso para ser eliminada.
os.rmdir(c), es el comando que realiza la acción de eliminar la carpeta.
Algo que es importante, es que este comando solo elimina carpetas vacías. Algo también importante es que al ser eliminada la carpeta, se eliminará totalmente, es decir, no se enviará a la papelera de reciclaje o Trash.

Bueno, les mostraré la imagen de una carpeta llamada Tareas que contiene un archivo.


Y para ejecutar el programa, teclearemos lo siguiente:
python osborrarc.py


Ejecución (Con carpeta Tareas, no vacía)

Como vemos, nos marca un error, diciendonos que el directorio o carpeta no esta vacía.

Aquí les muestro la imagen de la carpeta que en el programa anterior realice, llamada Trabajos.


Ejecución (Eliminar carpeta Trabajos, vacía)

Como vemos, ya no nos mostró ningún error, ya que la carpeta Trabajos esta vacía

Y a continuación les muestro la imagen donde ya la carpeta Trabajos ha sido eliminada.


Bueno, el siguiente programa lo llamé osborrara.py, , que igual que los programas anteriores contiene un comando que en esete caso lo que realiza, es eliminar un archivo.
El código de este programa es el siguiente:

#!/usr/bin/python

import os

a = raw_input("\nArchivo que se desea eliminar: ")

os.remove(a)

print "Borrando archivo...", a

En este programa también se tiene que colocar la funciónraw_input(""), ya que este programa lo que realiza es eliminar un archivo, y primeramente se pide al usuario que introduzca el nombre del archivo que desea eliminar, y el nombre del archivo debe convertirse en una cadena; es por eso que se utiliza también en este programa la función raw_input(""), siendo a, el archivo a eliminar.
El comando os.remove(), es el que realiza la función de eliminar el archivo que el usuario ha introducido.
El archivo a, se encuentra dentro de (), en el comando os.remove(), para que sea eliminado.
Algo importante, es que al ser eliminado el archivo, se eliminará totalmente, es deicr, no se enviará a la papelera de reciclaje o Trash.

Si se desea eliminar directamente un archivo sin la necesidad de introducir el nombre de este en la terminal, entonces en el comando se tendrá que colocar el nombre del archivo a eliminar junto con su extensión y entre comillas simples o dobles, es decir, os.remove('nombredearchivo.extension') o os.remove("nombredearchivo.extension").

El archivo que utilice para ejecutar este programa, lo nombre ar.txt, y a continuación les muestro la imagen en donde se muestra que el archivo aún no se ha eliminado.


Para ejecutar el programa, tecleamos en la terminal lo siguiente:
python osborrara.py


Ejecución


Aquí les muestro la imagen donde se muestra que el archivo ar.txt ha sido eliminado.


El siguiente programa que realicé, lo llame oscambiar.py, y es el siguiente:

#!/usr/bin/python

import os

d = raw_input("\nNombre del archivo al que desea cambiar el nombre: ")

e = raw_input("\nNombre nuevo del archivo: ")

os.rename(d,e)

print "\nCambiando nombre del archivo ", d
print "por el nombre de ", e

Lo que este programa realiza es cambiar el nombre de un archivo.
Primeramente mediante la parte del código:
d = raw_input("\nNombre del archivo al que desea cambiar el nombre: ")
e = raw_input("\nNombre nuevo del archivo: ")
se le pide al usuario que introduzca el nombre del archivo al que desea cambiarle el nombre, y después se pide al usuario que introduzca el nombre nuevo del archivo, siendo d y e, el archivo al que se le desea cambiar el nombre, y el nombre nuevo del archivo, respectivamente.

El comando os.rename(d,e), es el que realiza el cambio de nombre del archivo. Dentro de (), se coloca primeramente el archivo al que se desea cambiarle el nombre y después de una coma se coloca el nombre nuevo del archivo, en este caso, os.rename(d,e).
Si directamente se desea cambiar el nombre de un archivo sin la necesidad de introducirlo en la terminal, entonces en el comando os.rename(), se colocará dentro de (), el nombre del archivo al que se desea cambiar el nombre, y el nombre nuevo del archivo, respectivamente, con sus extensiones, dentro de comillas simples o comillas dobles, es decir, os.rename('nombredearchivo.extension','nombrenuevodearchivo.extension') o os.rename("nombredearchivo.extension","nombrenuevodearchivo.extension").

El programa que utilicé para ejecutar este programa se llama HolaMundo.java.
Aquí les muestro la imagen en donde se muestra este archivo con el nombre que aún no ha sido cambiado.


Para ejecutar este programa, tecleamos en la terminal lo siguiente:
python oscambiar.py


Ejecución

Como se muestra en la ejecución, se cambió el nombre de HolaMundo.java por el nombre de HelloWorld.java.

Aquí les muestro la imagen en donde se muestra el archivo HolaMundo.java ahora con el nombre de HelloWorld.java.


El siguiente programa lo nombre osexiste.py y es el siguiente:

#!/usr/bin/python

import os

a = raw_input("\nQue archivo desea saber si existe: ")

os.path.exists(a)

if os.path.exists(a):

print "\nSi existe el archivo ", a
print "\nEl archivo es el siguiente: \n"
f = open(a, "r")
for i in f:
print i

else:
print "\nNo existe el archivo ", a


Lo que este programa realiza, es decir si un archivo existe o no, y si existe, imprime lo que se encuentra en el archivo.
Primero se pide al usuario que introduzca el nombre del archivo que desea saber si existe mediante: a = raw_input("\nQue archivo desea saber si existe: "), donde a, es el archivo que se desea saber si existe. También se utiliza la función raw_input(""), para convertir en cadena el nombre del archivo.

El comando os.path.exists(a), es el que realiza la función de decir si un archivo existe.
if os.path.exists(a):, es una condición que menciona que si a existe, entonces mediante print "\nSi existe el archivo ", a , se imprimirá que el archivo a, existe. Además, ya que el archivo si existe, entonces mediante f = open(a, "r"), el archivo a, será abierto en modo de lectura ("r"), y mediante for i in f:, se irá leyendo el archivo a, y mediante print i, se imprimirá el contenido del archivo a. Y mediante else:
print "\nNo existe el archivo ", a, se dice que si no existe el archivo entonces se imprimirá que el archivo a, no existe.

Hay algo muy importante en la sintaxis del if, del for y del else.
Esto es, que cuando después de cada una de estas sentencias, todo lo que se coloque dentro de ellas, se deberá pasar un espacio hacia la derecha en cada línea, sino se hace esto, al momento de ejecutar el programa, se maracará un error, ya que se estará esperando que se coloque una sangría o espacio en lo que esta dentro de cada una de estas sentencias. Ya que si no se coloca de esta manera lo que este dentro de cada sentencia, entonces el programa estará tomando en cuenta que esa parte no esta dentro de la sentencia.
Además después de cada una de estas sentencias se deberan de color : (dos puntos).

Aquí les muestro la imagen de los archivos existentes.


Para ejecutar este programa, tecleamos en la terminal lo siguiente:
python osexiste.py


Aquí les muestro la ejecución del programa, en donde se introdujo el nombre de un archivo que no existe.

Como vemos el archivo jik.txt no existe, como lo podemos ver en la imagen en donde se encuentran los archivos existentes.

Aquí les muestro la imagen de un archivo que si existe, el cual se llama palabras.py.

Como podemos ver, este archivo si existe, y lo podemos comprobar observando la imagen en donde se encuentran los archivos existentes.
También en esta ejecución se puede ver que se imprimió lo que se encuentra dentro de este archivo palabras.py.

Aquí les muestro lo que en este archivo existe, para que se observe que es la misma información que se imprimió en la terminal.


Bueno aquí les dejo los links para descargar estos programas:
oscrear.py
osborrarc.py
osborrara.py
oscambiar.py
osexiste.py

También les dejo los links de las páginas que utilice para realizar los programas, (son en las que mas me base):
AWK
PYTHON

Bueno espero que hayan entendido cada uno de estos programas.
Gracias por su atención.
Saludos.

4 comentarios:

Cecilia Urbina dijo...
Este comentario ha sido eliminado por el autor.
Roberto Martinez dijo...
Este comentario ha sido eliminado por el autor.
Cecilia Urbina dijo...

"os" quita portabilidad a los programa, hace tiempo la doctora me lo dijo ya que tus programas con los comandos mkdir y eso no se podrian correr en windows.. :D

Elisa dijo...

Punto de participación para Cecy por su comentario muy adecuado y cuatro puntos extra a Gemma en la clase por la entrada.

Publicar un comentario