首页 > 解决方案 > 将 Python 制作的 15000x 凭证代码导出到 Excel

问题描述

我正在尝试使用 Excel 导出传单的优惠券代码。我想用随机凭证代码创建 15000 行。到目前为止,我已经在下面做了,但我怎样才能让它为每行创建 15000 个优惠券代码?

非常感谢。

import random
import string
import pandas as pd

def random_string_generator(str_size, allowed_chars):
    return ''.join(random.choice(allowed_chars) for x in range(str_size))

chars = string.ascii_uppercase
size = 5

for i in range(15000):
    print (random_string_generator(size, chars)+"-"+random_string_generator(size, chars)+"-"+random_string_generator(size, chars)+"-"+random_string_generator(size, chars)+"-"+random_string_generator(size, chars))

标签: pythonexcel

解决方案


这是您的原始代码,并进行了一些调整:

import random
import string

chars = string.ascii_uppercase
amount_of_vouchers = 10
segments_per_voucher = 5
chars_per_segment = 5

def random_string_generator(allowed_chars, str_size):
    return ''.join(random.choices(allowed_chars, k=str_size))

vouchers = []
for i in range(amount_of_vouchers):    
    voucher = [random_string_generator(chars, chars_per_segment) for j in range(segments_per_voucher)]
    vouchers.append('-'.join(voucher))
    
print('\n'.join(vouchers))

我做了什么:

  1. 我没有将函数调用串联在一行上,而是将其更改为循环。这更容易阅读,更容易改变和更短。
  2. 添加了围绕代码生成的循环,以便我们可以创建多个凭证
  3. 凭证存储在富有想象力的命名vouchers数组中。
  4. 更改random.choicerandom.choices,这允许我们一次生成整个片段,而不是每个字符。

示例输出:

RIRSE-BURXY-NTBFP-VZTBC-LNQYD
OWTSZ-AIUPS-POXMW-PQXJY-DUXUE
BFDJI-ASLPZ-XIRKR-ZKVLB-YGRCA
SQTHJ-DYJYL-IZQFD-EFBJO-OWPHO
OWPWW-PJGNY-BOCZM-ANNLJ-CFXKY
NHQUN-MMBQB-KHLYL-ZQVTD-TDUQC
MNOYT-WAVWV-QSUND-RYKHB-TNUCF
OAHOR-DPJFN-RQYHE-GUSVF-CPCBF
OFNHT-LCARH-EZDWT-YRLLI-IWJZW
NXLKI-GCJDM-QZGPU-MIZCC-XSOQD

推荐阅读