今さらPython

コンソールで動くpythonスクリプト。短いものならいいけどループのやつをCTRL-Cで終わらせたい。どうする?

こうするのよ。

コード

KeyboardInterrupt を使います。

#!/usr/bin/env python

import datetime
import time

class Hane():
   def __init__(self):
       self.s = ["/","-","\\","|"]
       self.si = 0
   def next(self):
       self.si = self.si + 1
       if(self.si > 3):
           self.si = 0
       return(str(self.s[self.si]))

h = Hane()
ttx = ""
try:
   while 1:
       tx = datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")
       if(tx != ttx):
           ttx = tx
           print("\r",flush=True,end="")
           print(tx+" "+h.next(),flush=True,end="")
       time.sleep(0.1)
except KeyboardInterrupt:
   print("\nBye!")
   exit

実行すると

$ clock
2023/05/26 16:54:26 /  (実行中にCTRL-Cを押す)
Bye!
$ less

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS