python - 将 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))
解决方案
这是您的原始代码,并进行了一些调整:
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))
我做了什么:
- 我没有将函数调用串联在一行上,而是将其更改为循环。这更容易阅读,更容易改变和更短。
- 添加了围绕代码生成的循环,以便我们可以创建多个凭证
- 凭证存储在富有想象力的命名
vouchers
数组中。 - 更改
random.choice
为random.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
推荐阅读
- ruby-on-rails - 如何找到has_one:在Rails中通过关联不是零的地方
- c++ - 在堆叠地图中获取价值
- azure - 权限不足,无法完成操作 - Azure Active Directory
- javascript - Selenium 无法通过 XPath 识别元素
- sql-server - 转换输入,如果出现错误,清理数据并在流中重新输入
- java - 未调用主方法的方法(Java)
- java - 对二叉树的叶子进行升序排序时遇到问题
- azure - 如何获取存储在 Azure 存储帐户中的数字文件的下载 url
- nginx - Nginx 反向代理抛出 404
- azure - 如何获取 Azure 数据工厂管道的静态 IP?