Pues eso, un poco de código para no oxidarse.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Dec 5 18:26:11 2015
@author: chaosnet
"""
def diccionario_fechas(separador, formato_meses, orden):
"""Devuelve un diccionario basado en combinaciones de fechas delimitado
por un separador. Toma los parámetro 'separador' como cadena de texto entre
los días, años y meses, 'formato_meses' con valor 'nombre, numero,
m_abreviado, a_abreviado_nombre, a_abreviado_numero o t_abreviado' en
función de como quieran representarse y 'orden' con las combinaciones de
dma (dia, mes, año)"""
diccio = []
dias = [x for x in range(1, 32)]
meses_nombre = ["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio",
"agosto", "septiembre", "octubre", "noviembre", "diciembre"]
meses_numero = [x for x in range(1,13)]
años = [x for x in range(1945, 2015)]
años_abr = [x for x in range(10,100)]
años09 = [x for x in range(0,10)]
for p in años09:
años_abr.append("0" + str(p))
# Declaramos los casos del parámetro 'formato_meses'
if formato_meses == "nombre":
meses = meses_nombre
elif formato_meses == "numero":
meses = meses_numero
elif formato_meses == "m_abreviado":
meses = []
for m in meses_nombre:
meses.append(str(m[0:3:]))
elif formato_meses == "a_abreviado_nombre":
años = años_abr
meses = meses_nombre
elif formato_meses == "a_abreviado_numero":
años = años_abr
meses = meses_numero
elif formato_meses == "t_abreviado":
años = años_abr
meses = []
for m in meses_nombre:
meses.append(str(m[0:3:]))
else:
print("El parámetro 'formato_meses' a de ser 'nombre' o 'numero'")
return None
# Declaramos los casos del parámetro 'orden'
if orden == "dma":
a = dias
b = meses
c = años
elif orden == "mad":
a = meses
b = años
c = dias
elif orden == "adm":
a = años
b = dias
c = meses
elif orden == "mda":
a = meses
b = dias
c = años
elif orden == "dam":
a = dias
b = años
c = meses
elif orden == "amd":
a = años
b = meses
c = dias
else:
print("El parametro orden es incorrecto. Introduzca una cadena tipo 'dma' donde d es dias, m meses y a años.")
return None
# Concatenamos las cadenas generando el diccionario.
for a1 in a:
for b1 in b:
for c1 in c:
diccio.append(str(a1) + separador + str(b1) + separador + str(c1))
return diccio
# Aquí se define como actuará si se le llama como principal con argumentos de entrada
if __name__ == '__main__':
import sys
if len(sys.argv) != 4:
print("Error: Número de parámetros erroneo.")
print("Utilización: {} 'separador' 'formato_meses' 'orden'.".format(sys.argv[0]))
print(""" 'Formato_meses', meses y años (nombre, numero,
m_abreviado, a_abreviado_nombre, a_abreviado_numero o t_abreviado)""")
print(" 'Orden'. Combinaciones dia, mes, año (dma).")
else:
try:
with open("diccionario_fechas.txt", "w") as fd:
fd.write(" ".join(diccionario_fechas(sys.argv[1], sys.argv[2], sys.argv[3])))
print("""Se ha creado el diccionario y ha sido guardado con el nombre de 'diccionario_fechas.txt'""")
except IOError:
print("""Algo falló al generar el fichero con la lista de palabras.
Compruebe que tiene permisos de escritura en el directorio de trabajo actual""")
No hay comentarios:
Publicar un comentario