查看: 377|回复: 1

[其他] 写了一个批量二维码转换

[复制链接]
1天累计签到
1天连续签到
初来乍到

3001

主题

11

回帖

2万

积分

总版主

名望
0 点
星币
6032 枚
星辰
0 颗
好评
2 点
发表于 2 小时前 | 显示全部楼层 |阅读模式

注册登录后全站资源免费查看下载

您需要 登录 才可以下载或查看,没有账号?立即注册

×


没什么技术含量,只是批量转二维码

  • import qrcode
    import os
    from datetime import datetime
    from concurrent.futures import ThreadPoolExecutor, as_completed
    import time
    def generate_qr_code(content, line_number, save_dir):
    # 生成二维码
    qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
    )
    qr.add_data(content)
    qr.make(fit=True)
    # 清理内容,避免生成无效的文件名
    safe_content = (str(content).replace(' ', '_').replace(':', '_')
    .replace('*', '_').replace('?', '_').replace('"', '_')
    .replace('<', '_').replace('>', '_').replace('|', '_')
    .replace('/', '_').replace('\\', '_').replace('&', '_')
    .replace('#', '_').replace('!', '_').replace('
    , '_')
    .replace('@', '_').replace('~', '_').replace('%', '_')
    .replace(',', '_').replace(';', '_').replace('=', '_'))
    filename = f"{line_number}-{safe_content}.png"
    # 构建完整的保存路径
    save_path = os.path.join(save_dir, filename)
    # 确保保存目录存在
    os.makedirs(save_dir, exist_ok=True)
    # 创建二维码图片并保存
    img = qr.make_image(fill_color="black", back_color="white")
    img.save(save_path)
    return save_path # 返回保存路径,以便我们可以确认文件已保存
    def process_file(file_path, save_dir):
    with open(file_path, 'r', encoding='utf-8') as file:
    lines = file.readlines()
    threads = []
    with ThreadPoolExecutor(max_workers=5) as executor: # 限制最多同时运行的线程数量
    # 遍历文件中的每一行,并为每一行创建一个线程任务
    for line_number, content in enumerate(lines, start=1):
    content = content.strip()
    if content: # 如果行不为空,则提交生成二维码的任务
    future = executor.submit(generate_qr_code, content, line_number, save_dir)
    threads.append(future)
    # 等待所有线程任务完成,并获取结果
    for future in as_completed(threads):
    save_path = future.result()
    if save_path:
    print(f"二维码已保存为:{save_path}")
    if __name__ == "__main__":
    # 指定待转换的文件名
    file_path = '待转.txt'
    # 获取当前时间,并格式化为年月日时分秒
    timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
    # 定义保存二维码的文件夹路径,包含时间戳
    save_dir = os.path.join(os.getcwd(), f"生成结果{timestamp}")
    # 处理文件并生成二维码
    process_file(file_path, save_dir)
    print('全部转换完成,3s后退出')
    time.sleep(3)
    exit(0)

复制代码
默认签名:偏爱是我家,发展靠大家! 社区反馈邮箱Mail To:[email protected]
回复

使用道具 举报

1天累计签到
1天连续签到
初来乍到

2

主题

9855

回帖

1万

积分

偏爱AI机器人

名望
0 点
星币
2681 枚
星辰
0 颗
好评
0 点
发表于 2 小时前 | 显示全部楼层
好家伙,这脚本一跑,楼下打印店的二维码生意怕是要黄了,老板得连夜改行卖奶茶。
默认签名:偏爱是我家,发展靠大家! 社区反馈邮箱Mail To:[email protected]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号
Archiver|手机版|偏爱技术社区-偏爱技术吧-源码-科学刀-我爱辅助-娱乐网--教开服-游戏源码

相关侵权、举报、投诉及建议等,请发 E-mail:[email protected]

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部