You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为批量保存的条码文件添加顺序编号后缀避免覆盖?

解决方案

你的代码存在两个核心问题:

  • input() 获取的 quantity 是字符串类型,直接和整数比较永远不成立,导致分支逻辑完全失效;
  • 仅创建了一个条码实例,且重复使用相同文件名保存,必然会覆盖已有文件。

用 for 循环可以简洁实现批量生成需求,同时处理文件名的顺序后缀,修正后的代码如下:

from barcode import EAN14

# 获取条码编号和生成数量,将数量转为整数
number = input("Enter the barcode ")
try:
    quantity = int(input("Enter the quantity "))
except ValueError:
    print("请输入有效的数字作为生成数量")
    exit()

# 循环生成指定数量的条码
for i in range(quantity):
    # 创建条码实例
    my_code = EAN14(number)
    # 根据循环次数生成文件名:第1个用原编号,后续添加(1)(2)...后缀
    filename = number if i == 0 else f"{number}({i})"
    # 保存文件,barcode库会自动添加.svg后缀
    my_code.save(filename)

代码说明:

  • 先将 quantity 转为整数,同时增加异常处理,避免输入非数字导致程序崩溃;
  • 使用 for 循环遍历索引,根据索引生成差异化文件名,避免覆盖;
  • 若你需要生成连续递增的条码编号(而非相同条码不同文件名),可修改循环内的条码实例创建逻辑,示例如下:
from barcode import EAN14

number = input("Enter the starting barcode ")
try:
    quantity = int(input("Enter the quantity "))
except ValueError:
    print("请输入有效的数字作为生成数量")
    exit()

# 转换为整数方便递增,同时补零保证符合EAN14长度要求
start_number = int(number)
for i in range(quantity):
    current_number = str(start_number + i).zfill(14)
    my_code = EAN14(current_number)
    # 文件名可选择用当前条码编号,或保留起始编号加后缀
    filename = current_number  # 也可改为 f"{number}({i})"
    my_code.save(filename)

内容的提问来源于stack exchange,提问作者tag_ur_pregnant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:37:52