Hola a todos!:
Hoy de nuevo vamos a trabajar con python!. En concreto nuestra tarea será la de generar cadenas de caracteres alfanuméricos aleatorios. Como ya sabéis en esta web hay varios post en distintos lenguajes sobre este tema:
- GENERAR CADENAS DE CARACTERES ALFANUMÉRICOS ALEATORIOS CON POWER QUERY
- GENERANDO SUBCADENAS CON CARACTERES ALFANUMÉRICOS ALEATORIOS Y TYPESCRIPT
- CREAR CADENA ALFANUMÉRICA SIN DUPLICADOS CON UNA FUNCIÓN
Y ahora toca hacerlo con python : ) Para ello vamos a tener en cuenta el siguiente supuesto: tenemos que generar n cantidad de cadenas de longitudes determinadas en un rango (mínimo y máximo). Se tendrán en cuenta, números, letras y determinados caracteres especiales. Obviamente tendremos que exportar la información a Excel.
Os propongo para hacerlo el siguiente código:
import random
import string
import xlsxwriter
#Ruta donde guadaremos la información
workbook = xlsxwriter.Workbook(r'C:\Users\USUARIO\OneDrive\Documents-Segu\ALFANUMERICOS ALEATORIOS\ALFANUMERICOS_ALEATORIOS.xlsx')
worksheet = workbook.add_worksheet("Hoja1")
#numero de líneas o cadenas
nCadenas=100
#numero maximo de filas por columna
lColumn=25
#inicializador filas
row =0
#inicializador columnas
column=0
#loop para generar las cadenas
for i in range(1, nCadenas+1):
def generaCadena():
#Cadena completa de los caracteres a elegir aleatoriamente
MiCadena = string.ascii_letters + string.digits + str('*/|+$%')
#eleccion aleatoria y rango de longitud
return "".join(random.choice(MiCadena) for j in range(random.randint(10,50)))
print(generaCadena())
#guardamos datos
worksheet.write(row, column, generaCadena())
row += 1
if row == lColumn:
column=column + 1
row=-1
row += 1
workbook.close()
En este ejemplo vamos a generar 100 cadenas con un tope de 25 filas por columnas (es decir, 4 columnas) y con un largo de rango mínimo 10 de caracteres y máximo de 50 caracteres.
Creo que ha comentado con detenimiento cada línea de código y no me voy a extender a comentarlo, excepto en:
string.ascii_letters + string.digits + str('*/|+$%')
Para este ejemplo he querido tener en cuenta solo unos caracteres especiales, si quiera todos utilizaría: string.punctuation que contiene todos estos: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
. Aquí tenéis documentación.
Y para el resto sería igual, si deseo un determinado grupo de números o letras, solo hay para pasarlos como una string.
Este es el código en Visual Studio Code con Jupyter:
![](https://i0.wp.com/excelsignum.com/wp-content/uploads/2021/03/GENERAR-CADENAS-DE-CARACTERES-ALFANUMERICOS-ALEATORIOS-CON-PYTHON.jpg?resize=1024%2C783&ssl=1)
Como podéis observar, en la pantalla del output se muestran las cadenas ya generadas. Y si queremos verlo en Excel, este es el resultado:
![](https://i0.wp.com/excelsignum.com/wp-content/uploads/2021/03/GENERAR-CADENAS-DE-CARACTERES-ALFANUMERICOS-ALEATORIOS-CON-PYTHON1.jpg?resize=1024%2C496&ssl=1)
Y esto es todo, espero que sea de utilidad e interés.
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies