Posts Tagged ‘python’

Mi primera vez (python)

January 31st, 2009

Hace tiempo que habia visto a python, me llamo la atención por sus características poco usuales, como que los espacios tenga un valor semántico a diferencia de uno puramente visual, donde la identación en el código crea los bloques de codigos que en otros lenguajes se crean con “begin y end”, “{ y }”, etc.

Desgraciadamente no habia tenido oportunidad de usarlo para un requerimiento real de mi trabajo, pero eso cambio el día de hoy.

Hoy fue mi primera vez.

El siguiente script fue mi primero con python, toma dos parámetros de la linea de comando, el primero es un archivo con una lista de nombres de usuarios, como el que se obtiene con el siguiente comando:

1
awk -F : '{print $1}' /etc/passwd > userDatabase.txt

El segundo parámetro es un archivo que contiene una lista de usuario{Tabulador}password como por ejemplo:

1
2
3
panchito	pancho123
albertein	paparazi
dariamox	password

Lo que hace es imprimir el usuario y contraseña (separado por “:”) del segundo archivo cuando el usuario se encuentre listado en el primer archivo. Un formato idóneo para usarlo junto con chpasswd (utilería que cambia las contraseñas del sistema en modo batch).

1
python passwordFormatter.py systemUsers passwordDatabase | chpasswd

El dichoso script, es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys
 
file = open (sys.argv [1], 'r')
userList = file.read ().split ('\n')
file.close ()
 
file = open (sys.argv [2], 'r')
 
for line in file:
       userData = line.split ('\t')
       username = userData [0]
       password = userData [1]
       if username in userList:
               print username + ':' + password,
 
file.close ()