前提・実現したいこと
RaspberryPiとPasoriを使ってICチップをタッチしている間の時間を計測し、計測した時間をtkinterで作ったGUIで表示しようとしています。
表示することはうまくいったのですがマイクロ秒まで表示されるのでそれを直そうとしたところ以下のエラーメッセージが出てしまいました。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "test_5.py", line 52, in <module> t3 = dt.replace(microsecond = 0) TypeError: descriptor 'replace' of 'datetime.datetime' object needs an argument
該当のソースコード
python
1import binascii 2import nfc 3import os 4from datetime import datetime as dt 5import time 6import tkinter as tk 7import tkinter.font as tkFont 8 9 10 11global t1 12 13 14 15class MyCardReader(object): 16 def on_connect(self, tag): 17 #タッチ時の処理 18 print("【 Touched 】") 19 global t1 20 t1 = dt.now() 21 print(t1) 22 #IDmのみ取得して表示 23 self.idm = binascii.hexlify(tag._nfcid) 24 print("IDm : " + str(self.idm)) 25 26 27 28 #特定のIDmだった場合のアクション 29 if self.idm == b'01010801741e2410': 30 print("【 登録されたIDです 】") 31 32 33 34 return True 35 36 37 38 def read_id(self): 39 clf = nfc.ContactlessFrontend('usb') 40 try: 41 clf.connect(rdwr={'on-connect': self.on_connect}) 42 finally: 43 clf.close() 44 45 46 47if __name__ == '__main__': 48 cr = MyCardReader() 49 while True: 50 #タッチ待ち 51 cr.read_id() 52 #リリース時の処理 53 t2 = dt.now() 54 t3 = t2-t1 55 app = tk.Tk() 56 app.title("test") 57 app.geometry("1000x100") 58 fontStyle = tkFont.Font(family = "Lucida Grande", size=50) 59 label = tk.Label(app,text="00:00",font=fontStyle) 60 t3 = dt.replace(microsecond =0) 61 label.config(text = t3) 62 label.pack() 63 app.mainloop()
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/24 13:20