我有一个Python脚本,一开始我认为它工作得很好;它基本上为一个组织创建一个文件夹,获取一个csv,并使用该csv的第一列创建QR码(与组织名称连接),它存储在该组织的“image”文件夹中。你知道吗
剧本如下:
import csv
import qrcode
import os
org = "1234"
filename = '/Users/Ryan/Download/test.csv'
localfolder = '/Users/Ryan/Download/'+org
localimagefolder = localfolder+'/image'
if not os.path.exists(localfolder):
os.makedirs(localfolder)
if not os.path.exists(localimagefolder):
os.makedirs(localimagefolder)
with open(filename, 'rU') as csvfile:
next(csvfile, None) #skip header row
reader = csv.reader(csvfile, delimiter=',', dialect=csv.excel_tab)
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
for i, row in enumerate(reader):
labeldata = row[0] #Choose first column of data to create QR codes
print labeldata
qr.add_data(org+"-"+labeldata)
qr.make()
img = qr.make_image()
img.save(localimagefolder+"/"+org+"-"+labeldata+".png".format(i)) #Save image
那个测试.csv实际上只是一个三列文件,如下所示:
ID FirstName LastName
813 Aaron Zobrist
64 Adam Young
871 Alana Yarnell
728 Alexandra Wilson
980 Ali Williams
118 Alicia Wilderman
51 Alonzo Wilcox
902 Alphonso Whitehouse
915 Amanda Wharton
就我的目的而言,只需根据脚本中的org变量创建一个QR码,并使用该人员的主要ID即可。如果运行该脚本,则所有操作都应正常进行--只是当您实际读取QR码时,所有这些ID将聚合在一起,而不是单独进行。你知道吗
这是文件中返回完美结果(1234-813)的第一个二维码(ID:813)。但它只返回正确的代码,因为它是第一个:
最后一个(ID:915)似乎也错误地合并了所有其他ID(从大小也可以看出):
当您阅读此代码时,返回的是“1234-8131234-641234-8711234-7281234-9801234-1181234-511234-9021234-915”,而不是应该的“1234-915”。你知道吗
希望这只是一个愚蠢的错误,我不能在我的脚本中找到。有人能帮忙吗?谢谢您!你知道吗
似乎
qr.add_data()
会将数据添加到现有的qr
。按照以下方式构造代码更有意义:通过这样做,您将在循环的每次迭代中使用一个新的
QRCode()
对象。你知道吗相关问题 更多 >
编程相关推荐