精华0
阅读权限250
最后登录2026-11-5
在线时间72 小时

总版主
名望- 0 点
星币- 6054 枚
星辰- 0 颗
好评- 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)
复制代码
|
|