
順番
背景:なぜこのツールを作ったのか?
業務で、伝票のQRと部品のバーコードを照合する場面があり、
・照合ミスを減らしたい
・音でOK/NGがわかるようにしたい
QRリーダーを使用したQRコードの読み込み
まず、QRリーダーを使用して読み取った情報をpcに提示したい
そこで下記を入力
・パイソンスクリプトを使用して
・QRリーダーがキーボード入力として動作します
・その内容を表示したい
・どう書けばいいですか?
>答え
QRコードリーダーがキーボード入力として動作する場合、
input() や keyboard ライブラリを使って入力を受け取り、表示することができます。
基本的な方法 (input() を使う)
qr_code = input("QRコードをスキャンしてください: ")
print(f"スキャンされた内容: {qr_code}")
この方法では、QRリーダーが入力をエンターキーで確定する場合に動作します。
これでQRの読み込みはOK
スキャンされた内容:11111 22222 33333 ringoA 44444 55555
QRコードの分解:伝票データから必要な情報を抽出
次にその内容から必要な情報を抜き取る
照合に必要なのは
「品番」
この場合
「ringoA」
そこで下記を入力
qr_code = "11111 22222 33333 ringoA 44444 55555"
ここから「ringoA」を抜き取りたい
出てくくる場所は前から4つ目と決まっています
品番はkakiBなどもあります
どうすればいいですか?
>答え
qr_code の4つ目の要素を取得するには、
split() を使ってリスト化し、
インデックス指定で取り出すのが最も簡単です。
qr_code = "11111 22222 33333 ringoA 44444 55555"
# スペースで分割し、4つ目の要素を取得
parts = qr_code.split()
品番 = parts[3] # インデックス3(0から数えて4番目)
次に照合相手となるバーコードを読み取ります。
これは先ほどのQRの読み込みと同じですから
bar_code = input("バーコードをスキャンしてください: ")
print(f"スキャンされた内容: {bar_code}")
bar_codeは品番のみの情報でしたので
bar_code = "ringoA"
QRコードとBARコードの照合
次に一致するかどうかの確認です
そこで下記を入力
・qr_codeとbar_codeが一致しているか確認したい
・どう書きますか?
>答え
qr_code と bar_code を比較する方法
qr_code と bar_code の 一致確認 をするには、
シンプルに == を使うのが基本です。
① シンプルな比較
qr_code = "12345ABC"
bar_code = "12345ABC"
if qr_code == bar_code:
print("一致しています!")
else:
print("一致していません!")
さらに音を出したい
そこで下記を入力
・判別して音を出したいです
>答え
・事前準備
ok.wav:一致時に鳴らす音
ng.wav:不一致時に鳴らす音
これら音声ファイルを同じフォルダに収納しておきます。
import pygame
import time
# 初期化
pygame.mixer.init()
# 音声ファイルを読み込む(WAV または MP3)
sound_match = pygame.mixer.Sound("ok.wav") # 一致時の音
sound_mismatch = pygame.mixer.Sound("ng.wav") # 不一致時の音
# QRコードとバーコード(例)
qr_code = "12345ABC"
bar_code = "12345abc"
# 比較(大文字小文字を無視)
if qr_code.strip().lower() == bar_code.strip().lower():
print("✅ 一致しています")
sound_match.play()
else:
print("❌ 一致していません")
sound_mismatch.play()
# 再生終了まで待機(1秒程度)
time.sleep(1)
最終的なトータルコード(完成形)
import pygame
import time
# 1. QRコードをスキャン
qr_code = input("QRコードをスキャンしてください: ")
parts = qr_code.split()
if len(parts) < 4:
print("QRコードの形式が不正です")
exit()
# 2. 品番を取り出す(4つ目)
品番 = parts[3]
print(f"抽出された品番: {品番}")
# 3. バーコードをスキャン
bar_code = input("バーコードをスキャンしてください: ")
print(f"スキャンされたバーコード: {bar_code}")
# 4. pygameで音声出力の準備
pygame.mixer.init()
sound_match = pygame.mixer.Sound("ok.wav")
sound_mismatch = pygame.mixer.Sound("ng.wav")
# 5. 一致判定(大文字小文字・前後空白を無視)
if 品番.strip().lower() == bar_code.strip().lower():
print("✅ 一致しています")
sound_match.play()
else:
print("❌ 一致していません")
sound_mismatch.play()
# 6. 再生終了まで少し待つ
time.sleep(1)