Python練習題一
import qrcode
import sys
import os
# 需要傳入5個參數
# msg: QRCode的內容
# box_size: 圖裡面的像素大小,也就是每個黑點要多大,大一點整個圖也會變大,預設值為 10
# border: 旁邊白框大小,預設值為 2
# file_name: QRCode的圖片檔名, 不包含附檔名
# path: QRCode的圖片存檔路徑, 分隔字元採用斜線(/)
arg_cnt = len(sys.argv)
if arg_cnt < 2:
print("需要傳入5個參數:")
print("qtcode_gen msg [box_size [border [file_name [path]]]")
print(" msg: QRCode的內容")
print(" box_size: 圖裡面的像素大小,也就是每個黑點要多大,大一點整個圖也會變大,預設值為 10")
print(" border: 旁邊白框大小,預設值為 2")
print(" file_name: QRCode的圖片檔名, 不包含附檔名")
print(" path: QRCode的圖片存檔路徑, 分隔字元用斜線(/)")
sys.exit(1)
# QRCode 的內容
msg = sys.argv[1]
# 二維碼矩陣大小, 1~40
ver = 1
# 二維碼每個小格像素值, 預設10
box_size=10
if arg_cnt >= 3 and sys.argv[2].isdigit():
box_size = int(sys.argv[2])
# 外框像素, 預設2
border=2
if arg_cnt >= 4 and sys.argv[3].isdigit():
border = int(sys.argv[3])
# file_name, 圖片格式固定為 png
file_name = 'qrcode_tmp.png'
if arg_cnt >= 5:
file_name = sys.argv[4] + '.png'
# path
path = os.getcwd() #目前工作路徑
if arg_cnt >= 6:
path = sys.argv[5]
if path[-1] != '/':
path += '/'
# 產生一個 qrcode 物件
# error_correction: 錯誤修正程度,設置為 High
qr = qrcode.QRCode(
version=ver,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=box_size,
border=border,
)
# 產生圖檔
qr.add_data(msg)
qr.make(fit=True) #忽略version
img = qr.make_image()
# 存檔
img.save(path+file_name)
print("完成\n"+path+file_name)