2017-10-11 160 views
0
def build(string, path, name, logo=""): 
     qr = qrcode.QRCode(
      version = 2, 
      error_correction = qrcode.constants.ERROR_CORRECT_H, 
      box_size = 10, 
      border = 1 
     ) 
     qr.add_data(string) 
     qr.make(fit = True) 
     img = qr.make_image() 
     img = img.convert("RGBA") 
     icon = Image.open('img/'+logo+'.png') 
     img_w, img_h = img.size 
     factor = 4 
     size_w = int(img_w/factor) 
     size_h = int(img_h/factor) 
     icon_w, icon_h = icon.size 
     if icon_w > size_w: icon_w = size_w 
     if icon_h > size_h: icon_h = size_h 
     icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS) 
     w = int((img_w - icon_w)/2) 
     h = int((img_h - icon_h)/2) 
     icon = icon.convert("RGBA") 
     newimg = Image.new("RGBA", (icon_w + 8, icon_h + 8), (255, 255, 255)) 
     img.paste(newimg, (w-4, h-4), newimg) 
     img.paste(icon, (w, h), icon) 
     img.save(path + name + '.png', quality = 100) 

if __name__ == "__main__": 
     argparser = argparse.ArgumentParser() 
     args = argparser.parse_args() 
     argparser.add_argument('Words') 
     argparser.add_argument('-d', '--directory', default = os.getcwd()) 
     argparser.add_argument('-n', '--name') 
     argparser.add_argument('-l', '--logo') 
     build(args.Words, args.directory, args.name, args.logo) 

當我執行它python2error:無法識別的參數:

python code.py http://www.xx.com -n client -l client -d ./

它表明

usage: code.py [-h]

code.py: error: unrecognized arguments: http://www.xx.com -n client -l client -d ./

我怎樣才能使其正常工作?請幫幫我!

+3

首先通過正確縮進代碼來幫助我們 – Ludisposed

回答

1

args = argparser.parse_args() 

需要移動解析器的配置之後,換句話說,該行

argparser.add_argument('Words') 
argparser.add_argument('-d', '--directory', default = os.getcwd()) 
argparser.add_argument('-n', '--name') 
argparser.add_argument('-l', '--logo') 

你試圖之前,使用的解析器後你告訴解析器關於位置參數-d-n-l。所以很明顯,當被要求解析它們時,它並沒有認出它們。

+0

想了很多。我粗心。 – XiaoHu