2016-08-02 3 views
0

내가 가지고있는 CSV 파일을 반복하는 코드를 작성하려고합니다. 두 데이터 (이 경우 Rep "및"Entry ") 각 반환 값에 대해 QR 코드를 만듭니다 ... QR 코드를 만드는 방법과 데이터를 결합하는 방법을 알아 냈습니다. 그러나이 모든 것을 넣는 방법과 루프를 파악할 수는 없습니다 함께. 어떤 도움을 주셔서 감사합니다!CSV를 반복하고 각 행 문자열을 사용하여 QR 코드를 만드는 방법 - PYTHON

import csv 
import qrcode 

with open('SLS_labels.csv') as csvfile: 
    fieldnames= ["Rep", "Entry"] 
    reader= csv.reader(csvfile) 

    for row in reader: 
     labeldata = row[0] + row[1] 
     print labeldata 


    qr = qrcode.QRCode(
     version=1, 
     error_correction=qrcode.constants.ERROR_CORRECT_L, 
     box_size=1, 
     border=4, 
    ) 

    qr.add_data(labeldata) 
    qr.make(fit=True) 

    img = qr.make_image() 
    img.save("test.jpg") 

답변

0

당신은 당신이 for 루프 내에서 레이블을 만들 예정 :

for row in reader: 
    labeldata = row[0] + row[1] 

    qr = qrcode.QRCode(
    version=1, 
    error_correction=qrcode.constants.ERROR_CORRECT_L, 
    box_size=1, 
    border=4) 

    qr.add_data(labeldata) 
    qr.make(fit=True) 

    img = qr.make_image() 
    img.save(labeldata+".jpg") #this assumes your label data would make a good file name 

은 또한 당신이 목록에 labeldata 모두 추가하고 반복 할 수 ...

labeldata = [] 
for row in reader: 
    labeldata += [row[0] + row[1]] 
... 
for label in labeldata: 
    #make labels 
+0

가 왜 모든 루프'qr'의 새로운 인스턴스를 생성 할 것이다 qr.clear()img.save() 후 호출 할 수 있습니다 추가 된 데이터를 삭제하려면? – JClarke

+0

문서를 읽지 않고서'add_data' 메쏘드가 이전 정보를 덮어 쓰거나 연결하는 지 모르겠습니다. 매번 새로운 인스턴스를 만들면 오래된 데이터의 가능성에 대해 걱정할 필요가 없습니다. –

+0

그 점은 이해합니다.하지만 어쨌든 이상적인 방법은 아닙니다. 필요한 경우 부실 데이터를 삭제해야합니다. – JClarke

0
import csv 
import qrcode 

with open('SLS_labels.csv') as csvfile: 
    fieldnames= ["Rep", "Entry"] 
    reader= csv.reader(csvfile) 

    qr = qrcode.QRCode(
     version=1, 
     error_correction=qrcode.constants.ERROR_CORRECT_L, 
     box_size=1, 
     border=4, 
    ) 

    for i, row in enumerate(reader): 
     labeldata = row[0] + row[1] 
     print labeldata 

     qr.add_data(labeldata) 
     qr.make(fit=True) 

     img = qr.make_image() 
     img.save("test{}.jpg".format(i)) 

열거 형을 추가 했으므로 여러 개의대신 파일 이름의 색인 번호를 얻을 수 있습니다..

당신이