Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用变量生成带有python条形码的条形码_Python_Barcode - Fatal编程技术网

如何使用变量生成带有python条形码的条形码

如何使用变量生成带有python条形码的条形码,python,barcode,Python,Barcode,我正在尝试使用python条形码()生成条形码。我设法生成一个条形码并保存为png,如下所示: import barcode from barcode.writer import ImageWriter EAN = barcode.get_barcode_class('ean13') ean = EAN(u'5901234123457', writer=ImageWriter()) fullname = ean.save('barcode') 但是,如果我尝试使用变量中的值,它将不起作用:

我正在尝试使用python条形码()生成条形码。我设法生成一个条形码并保存为png,如下所示:

import barcode
from barcode.writer import ImageWriter

EAN = barcode.get_barcode_class('ean13')
ean = EAN(u'5901234123457', writer=ImageWriter())
fullname = ean.save('barcode')
但是,如果我尝试使用变量中的值,它将不起作用:

import barcode
from barcode.writer import ImageWriter

number = 5901234123457    

EAN = barcode.get_barcode_class('ean13')
ean = EAN(number, writer=ImageWriter())
fullname = ean.save('barcode')
然后我得到

TypeError: 'int' object is not subscriptable

我可能犯了一些愚蠢的错误,但我对这个很陌生…:/

条形码模块仅接受字符串作为输入,然后应将该整数设置为字符串:

import barcode
from barcode.writer import ImageWriter

number = 5901234123457 
number = str(number)

EAN = barcode.get_barcode_class('ean13')
ean = EAN(number, writer=ImageWriter())
fullname = ean.save('barcode')
from processing import *
from random import randint


def decimalToBinary(x):
    #This function converts a Decimal into a Binary
    #It generates a nibble (4 digits binary number)
    binaryNumber=bin(x)[2:]
    return (4-len(binaryNumber)) * "0" + binaryNumber

def drawBarCode(height): 
    #Generates a 13-digit bar code.
    marginLeft=30
    marginTop=40
    for i in range(1,14):  
        digit=randint(0,9)
        nibble=decimalToBinary(digit)
        for j in range(0,4):  
            if nibble[j:j+1]=="1":
                fill(0,0,0)
                stroke(0,0,0)
            else:
                fill(255,255,255)
                stroke(255,255,255)
            rect(marginLeft+i*8+2*j, marginTop, 2, height)

        #Display the digit in Decimal
        fill(0,0,0)
        stroke(0,0,0)
        #textSize(10)
        text(digit,marginLeft+i*8,marginTop+20+height)


def setup():
    strokeWeight(12)
    size(200,200)
    background(255,255,255)
    fill(0,0,0)
    stroke(0,0,0)
    drawBarCode(80)

run()