Archivos de Programación de Sistemas



Crear y leer ficheros ZIP.

'''Programa de pruebas para el manejo del modulo zipfile.'''

__shell_usage__ = '''\nAyuda:

Este programa crea un fichero zip con todos los ficheros de un directorio. Dicho fichero zip se guarda en el mismo directorio.

Uso: pruebaszip [-c] [-l] [--help]

-c: crea un zip

-l: lista los ficheros de un fichero zip y muestra informacion

--help: muestra esta pantalla de ayuda

'''

__author__ = 'Arturo Suelves Albert: arturosa@lycos.es'

__version__ = 'Pruebas de ZIP - 20/04/2001'

import zipfile import os.path import os,sys

def hacer_zip(ficherozip,directorio_ficheros_a_zipear): lista_de_ficheros_a_zipear=os.listdir(directorio_ficheros_a_zipear) a=zipfile.ZipFile(ficherozip,'w',8)

for i in lista_de_ficheros_a_zipear:

if os.path.isfile(str(directorio_ficheros_a_zipear)+'\\'+str(i)):

a.write(str(directorio_ficheros_a_zipear)+'\\'+str(i))

print'.', a.close()

def leer_zip(ficherozip):

a=zipfile.ZipFile(ficherozip,'r')

#print 'Lista de ficheros incluidos en el zip: ',a.namelist(),'\n'

#fichero_a_ver=raw_input('Fichero a visualizar: ')

print a.read(fichero_a_ver)

for contador in a.namelist():

print a.read(contador) #esta linea imprime el contenido del fichero print '\nNombre del fichero: '+contador

print 'Ultima modificacion del fichero: '+str(a.getinfo(contador).date_time) print 'Sistema que creo el fichero: '+str(a.getinfo(contador).create_system) print 'Tamaño comprimido: '+str(a.getinfo(contador).compress_size)

print 'Tamaño descomprimido: '+str(a.getinfo(contador).file_size)

print 'Tipo de compresion: '+str(a.getinfo(contador).compress_type)+'\n' tecla=raw_input('Pulse ENTER para ver el siguiente documento en el fichero zip.') a.close()

if __name__ == '__main__':

if len(sys.argv) == 2:

if sys.argv[1] == '-c':

directorio_trabajo=raw_input('\nDirectorio con los ficheros a zipear:')

os.chdir(directorio_trabajo)

nombre_zip=raw_input('\nNombre del fichero ZIP: ')

if os.path.isfile(nombre_zip):

print '\nYa existe un fichero en el directorio con este nombre: '+nombre_zip sys.exit()

else:

hacer_zip(nombre_zip,directorio_trabajo)

else:

if sys.argv[1] == '-l':

nombre_zip=raw_input('\nPath completo del fichero ZIP: ')

leer_zip(nombre_zip)

else:

print '\nNombre del programa:',sys.argv[0]

print __shell_usage__

print __author__

else:

print '\nNombre del programa:',sys.argv[0]

print __shell_usage__ print __author__ sys.exit()

Crear y leer de base de datos BERKELEY.

#!/usr/bin/env python

'''Creamos una base de datos de pruebas y la usamos para una consulta simple.'''

__shell_usage__ = ''' Este es un programa de ejemplo. Solo le debes de pasar como argumento

el nombre del fichero de la base de datos que quieres crear.'''

__version__ = 'Ejemplo de uso del modulo bsddb (Base de datos de Berkeley)'

__author__='Arturo Suelves (arturosa@lycos.es)' import bsddb #Modulo de base de datos berkeley import sys,os

def crear_base_datos(fichero):

db = bsddb.btopen(fichero, 'c')

for i in range(1000):

db[str(i)]='Elemento_'+str(i)

print 'Imprimimos el primer elemento de la base: ',db.first()

print 'Imprimimos el siguiente elemento de la base: ',db.next()

db.sync() #Importante: Para sincronizar la base en el disco,osea para grabarla db.close

def leer_de_la_base_datos(fichero):

db = bsddb.btopen(fichero, 'r') elemento=raw_input('Numero del elemento a buscar: ') print db.set_location(elemento)

db.close

if __name__ == '__main__': if sys.argv[1] == '--help': print __shell_usage__ else:

fichero_base_datos=sys.argv[1] crear_base_datos(fichero_base_datos) leer_de_la_base_datos(fichero_base_datos) print 'Programa finalizado.\n'

sys.exit()

Enviar mensajes a una lista de direcciones de correo.

'''Programa para enviar un mensaje a una lista de direcciones de e-mail.'''

__shell_usage__ = '''Este programa envia un mensaje a una lista de direcciones de e-mail.

El fichero de direcciones debe de tener una direccion de e-mail por linea.

El fichero con el cuerpo del mensaje debe de estar en formato texto. El puerto de SMTP es el 25.'''

__version__ = 'Ejemplo de uso del modulo smtplib (protocolo SMTP)'

__author__='Arturo Suelves (arturosa@lycos.es)'

import smtplib import sys,os

def enviar_mensajes_a_lista_de_correo(mail_enviador,asunto,servidorsmtp,puertosmtp):

fichero_con_lista_direcciones=raw_input('Introducir path completo del fichero de direcciones: ')

fichero_con_cuerpo_mensaje=raw_input('Introducir path completo del fichero con el cuerpo del mensaje: ')

fichero_con_mensajes_enviados=raw_input('Introducir path completo para fichero log de mensajes enviados: ')

fld=open(fichero_con_lista_direcciones,'r') fme=open(fichero_con_mensajes_enviados,'w') for i in fld.readlines():

try:

mensaje = "From: "+mail_enviador+"\nSubject: "+asunto+"\nTo: "+i+"\n"

fcm=open(fichero_con_cuerpo_mensaje,'r')

print '\nMensaje para: '+i for ii in fcm.readlines(): mensaje=mensaje+ii fcm.close()

print 'Abierto fichero del cuerpo del mensaje...\n'

server = smtplib.SMTP(servidorsmtp,int(puertosmtp))

print '\nImprimiendo la informacion de debug de la conexion con el servidor SMTP.\n'

server.set_debuglevel(1)

#Esta linea sirve para imprimir informacion de debuger sobre el proceso de enviar los mensajes

server.sendmail(mail_enviador, i, mensaje)

fme.write('Mensaje enviado a:'+i) print 'Mensaje enviado a: '+i server.quit()

except:

print 'Error enviando el fichero a: '+ i fme.write('Error enviado el fichero a: '+i)

fld.close()

fme.close()

if __name__ == '__main__' :

print '''Uso:

Este programa envia un mensaje a una lista de direcciones de e-mail.

El fichero de direcciones debe de tener una direccion de e-mail por linea.

El fichero con el cuerpo del mensaje debe de estar en formato texto. El puerto de SMTP estandard es el 25.

'''

enviador_mensaje=raw_input('Introducir e-mail del enviador: ') asunto_mensaje=raw_input('Introducir asunto del mensaje: ') servidorsmtp_mensaje=raw_input('Introducir servidor de SMTP: ') puertosmtp_mensaje=raw_input('Introducir puerto del SMTP : ')

enviar_mensajes_a_lista_de_correo(enviador_mensaje,asunto_mensaje,servidorsmtp_mensaje,p uertosmtp_mensaje)

print 'Programa finalizado.\n'

sys.exit()

Expresiones regulares.Convertir de MAYUSCULAS a minusculas

#!/usr/bin/env python

'''Ejemplo del uso de expresiones regulares en Python.'''

__shell_usage__ = ''' Este es un programa de ejemplo. Busca en fichero HTML dado como argumento, todas las marcas de html y las pone en minusculas y saca el resultado por pantalla.'''

__version__ = 'Ejemplo de uso de expresiones regulares'

__author__='Arturo Suelves (arturosa@lycos.es)'

import os,sys import string,re

def Mm(fentrada): flectura=open(fentrada,'r') f=flectura.read() flectura.close()

coincidencias1=re.findall("[\n][^]",f)

#Busca todas las marcas html desde el principio de la linea nueva al final coincidencias2=re.findall("[]*[\n]",f)+

#Busca todas las marcas html desde el principio de la linea al final de la linea coincidencias3=re.findall("[]",f)

#Busca todas las marcas html que van en una linea resultado=f

for i in coincidencias1: busca=re.search(i,resultado) if busca:

p1=busca.start() p2=busca.end() resultado1=resultado[:p1] resultado2=resultado[p2:]

anadido=string.lower(f[p1:p2])

resultado=resultado1+anadido+resultado2 for i in coincidencias2: busca=re.search(i,resultado)

if busca: p1=busca.start() p2=busca.end()

resultado1=resultado[:p1] resultado2=resultado[p2:] anadido=string.lower(f[p1:p2]) resultado=resultado1+anadido+resultado2

for i in coincidencias3: busca=re.search(i,resultado) if busca:

p1=busca.start() p2=busca.end() resultado1=resultado[:p1] resultado2=resultado[p2:]

anadido=string.lower(f[p1:p2])

resultado=resultado1+anadido+resultado2

return resultado

if __name__ == '__main__':

if len(sys.argv) == 2:

if sys.argv[1] '':

print Mm(sys.argv[1])

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download