1. 程式人生 > 實用技巧 >使用 pyscard 庫驅動 pcsc 讀卡器示例:當卡片插入時執行指定操作,還可等待特定ATR的卡片。

使用 pyscard 庫驅動 pcsc 讀卡器示例:當卡片插入時執行指定操作,還可等待特定ATR的卡片。

迴圈等待卡片,每當有卡片插入時,獲取並列印其ATR,通過 input 提示使用者操作完成以及提示正在等待插入卡片

from smartcard.CardRequest import CardRequest
from smartcard.util import toHexString, toBytes

cardrequest = CardRequest(timeout=60)  # 等待插入卡片的時長為60秒,超時則拋異常
while True:
    cardservice = cardrequest.waitforcard()
    cardservice.connection.connect()
    print(toHexString(cardservice.connection.getATR()))
    input("操作完成\n正在等待插入卡片")

迴圈等待特定ATR的卡片,每當有對應ATR的卡片插入時,獲取並列印其ATR,通過 input 提示使用者操作完成以及提示正在等待插入卡片

from smartcard.CardRequest import CardRequest
from smartcard.util import toHexString, toBytes

cardtype = ATRCardType(toBytes("3B 16 94 20 02 01 00 00 0D"))
cardrequest = CardRequest(timeout=1, cardType=cardtype)
while True:
    cardservice = cardrequest.waitforcard()
    cardservice.connection.connect()
    print(toHexString(cardservice.connection.getATR()))
    input("操作完成\n正在等待插入卡片")