本文目录导读:

我来介绍几种批量生成二维码的实用脚本方案。
使用 Python + qrcode 库
基础版本
import qrcode
import os
from PIL import Image
import pandas as pd
def batch_generate_qrcode(data_list, output_dir="qrcodes"):
"""
批量生成二维码
:param data_list: [(文件名, 二维码内容), ...]
:param output_dir: 输出目录
"""
# 创建输出目录
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for filename, content in data_list:
# 创建二维码对象
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=4,
)
# 添加数据
qr.add_data(content)
qr.make(fit=True)
# 生成图片
img = qr.make_image(fill_color="black", back_color="white")
# 保存
filepath = os.path.join(output_dir, f"{filename}.png")
img.save(filepath)
print(f"已生成: {filepath}")
从 Excel 读取数据批量生成
def generate_from_excel(excel_file, content_column, name_column, output_dir="qrcodes"):
"""
从Excel读取数据批量生成二维码
:param excel_file: Excel文件路径
:param content_column: 内容列名
:param name_column: 文件名列名
"""
# 读取Excel
df = pd.read_excel(excel_file)
# 准备数据
data_list = []
for _, row in df.iterrows():
data_list.append((row[name_column], row[content_column]))
# 批量生成
batch_generate_qrcode(data_list, output_dir)
# 使用示例
if __name__ == "__main__":
# 方法1:直接传入数据
data = [
("qrcode_1", "https://example.com/1"),
("qrcode_2", "https://example.com/2"),
("qrcode_3", "这是一段文本内容"),
]
batch_generate_qrcode(data)
# 方法2:从Excel读取
# generate_from_excel("data.xlsx", "内容", "文件名")
带 Logo 的高级版本
def generate_with_logo(data_list, logo_path=None, output_dir="qrcodes_with_logo"):
"""
带Logo的二维码生成
"""
import qrcode
from qrcode.image.styledpil import StyledPilImage
from qrcode.image.styles.moduledrawers import RoundedModuleDrawer
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for filename, content in data_list:
# 创建二维码
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=2,
)
qr.add_data(content)
qr.make(fit=True)
# 生成图片
if logo_path and os.path.exists(logo_path):
# 使用圆角模块
img = qr.make_image(
image_factory=StyledPilImage,
module_drawer=RoundedModuleDrawer(),
fill_color="black",
back_color="white"
)
# 添加Logo
img = img.convert("RGBA")
logo = Image.open(logo_path)
# 调整Logo大小
logo_size = int(img.size[0] * 0.2)
logo = logo.resize((logo_size, logo_size), Image.LANCZOS)
# 计算位置
pos = ((img.size[0] - logo_size) // 2,
(img.size[1] - logo_size) // 2)
# 粘贴Logo
img.paste(logo, pos, logo)
else:
img = qr.make_image(fill_color="black", back_color="white")
# 保存
img.save(os.path.join(output_dir, f"{filename}.png"))
print(f"已生成带Logo的二维码: {filename}.png")
JavaScript 版(Node.js)
// 使用 qrcode 包
// npm install qrcode
const QRCode = require('qrcode');
const fs = require('fs');
const path = require('path');
async function batchGenerateQR(dataList, outputDir = './qrcodes') {
// 创建输出目录
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir, { recursive: true });
}
for (const [filename, content] of dataList) {
const filepath = path.join(outputDir, `${filename}.png`);
try {
await QRCode.toFile(filepath, content, {
color: {
dark: '#000000',
light: '#ffffff'
},
width: 400,
margin: 2
});
console.log(`已生成: ${filepath}`);
} catch (error) {
console.error(`生成失败 ${filename}:`, error);
}
}
}
// 使用示例
const data = [
['qrcode_1', 'https://example.com/1'],
['qrcode_2', 'https://example.com/2'],
];
batchGenerateQR(data);
命令行工具版本
#!/bin/bash
# batch_qrcode.sh
# 需要安装 qrencode
# sudo apt-get install qrencode # Ubuntu/Debian
# brew install qrencode # macOS
# 从文件读取数据批量生成
while IFS=',' read -r filename content
do
# 去除空格
filename=$(echo "$filename" | xargs)
content=$(echo "$content" | xargs)
# 生成二维码
qrencode -o "${filename}.png" -s 10 -l H "$content"
echo "已生成: ${filename}.png"
done < data.csv
使用建议
安装依赖
# Python pip install qrcode[pil] pandas # Node.js npm install qrcode # 系统工具 sudo apt-get install qrencode # Linux brew install qrencode # macOS
CSV 数据格式
filename,content
qrcode_1,https://example.com
qrcode_2,这是测试内容
qrcode_3,123456789
高级功能扩展
def advanced_batch_generate(data_list, config=None):
"""
高级批量生成配置
config = {
'logo': 'logo.png', # Logo图片
'size': 400, # 尺寸
'color': ('#000', '#fff'), # 颜色
'custom_design': 'round', # 自定义样式
}
"""
# ... 实现代码
def batch_url_shorten_and_qrcode(urls):
"""
先缩短URL再生成二维码
"""
# ... 实现代码
选择最合适的方案取决于你的具体需求:Python适合数据处理,Node.js适合Web应用,命令行工具适合简单的批量操作。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播