摘要:作為一個程序員,突然好奇自己每天敲擊多少次鍵盤,于是研究了一下,寫了一個程序來記錄。其實實現很簡單,給安裝一個。這個跑起來后,就不要管它,在用完電腦后按下特殊鍵,就可以輸出統計數據了。這一天我總共敲擊鍵盤次。
作為一個程序員,突然好奇自己每天敲擊多少次鍵盤,于是研究了一下,寫了一個python程序來記錄。這里分享給大家。
其實實現很簡單,給python安裝一個package pynput。用其中自帶的keyboard listener. 在輸出統計數據的時候,有兩種選擇,一種是實時輸出,一種是給用某一個特殊的鍵做為信號告訴代碼輸出統計數據。我選擇的是后者。我用了page_down這個我從來不用的鍵做輸出。這個script跑起來后,就不要管它,在用完電腦后按下特殊鍵,就可以輸出統計數據了。
同時我也附上了我的某一天的統計圖。
這一天我總共敲擊鍵盤7836次。一個典型的英文單詞長度是6個字母,相當于我敲了1300個單詞。單純的打字速度是100次每分鐘,所以我一天只敲了13分鐘的鍵盤。。。
#!/usr/bin/env python from pynput import keyboard def get_key_name(key): if isinstance(key, keyboard.KeyCode): return key.char else: return str(key) def on_press(key): key_name = get_key_name(key) def on_release(key): key_name = get_key_name(key) if key_name in keys: key_stat[key_name] = key_stat[key_name] + 1 if key_name == "Key.page_down": fp=open("key_stat.xyz","w") for key in keys: fp.write("%s: %i " %(key, key_stat[key])) return False key_stat = {} keys = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0","`","Key.esc","Key.tab","Key.caps_lock","Key.shift","Key.ctrl","Key.alt","Key.cmd","Key.space","Key.alt_r","Key.cmd_r","Key.enter","Key.shift_r","Key.backspace","Key.up","Key.down","Key.left","Key.right","Key.ctrl_r",",",".","/",";",""","","]","[","=","-"] for key in keys: key_stat[key] = 0 with keyboard.Listener( on_press = on_press, on_release = on_release) as listener: listener.join()
畫圖的代碼如下
#!/usr/bin/python import numpy as np import matplotlib.pyplot as plt fp = open("key_stat.xyz") keys = [] stats = [] total = 0 for line in fp: x, y = line.split() x = x.replace("Key.","").replace(":","") keys.append(x) stats.append(int(y)) total += int(y) print(total) plt.bar(keys,stats) plt.xticks(keys,rotation="45") plt.show()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42029.html
摘要:淺談以及的原理和實現背景日常開發中我們經常會遇到一些需要節流調用或者壓縮調用次數的情況例如之前我在完成一個需求的時候就遇到了因為后端并發問題導致收到多條信息從而導致函數被重復調用的情況當時的做法是通過對函數的調用進行注冊遇到多次調用的時候清 淺談throttle以及debounce的原理和實現 背景 日常開發中,我們經常會遇到一些需要節流調用,或者壓縮調用次數的情況,例如之前我在完成...
jQuery 鼠標事件 click與dbclick事件 用交互操作中,最簡單直接的操作就是點擊操作。jQuery提供了兩個方法一個是click方法用于監聽用戶單擊操作,另一個方法是dbclick方法用于監聽用戶雙擊操作。這兩個方法的用法是類似的,下面以click()事件為例 方法一:$ele.click() 綁定$ele元素,不帶任何參數一般是用來指定觸發一個事件,用的比較少 點擊觸發 $(ele...
摘要:目錄第章事件介紹第章鼠標事件第章表單事件第章鍵盤事件第章事件的綁定和解綁第章事件對象的使用第章自定義事件與事件用交互操作中,最簡單直接就是點擊操作。提供了兩個方法一個是方法用于監聽用戶單擊操作,另一個方法是方法用于監聽用戶雙擊操作。 目錄 第1章 事件介紹 第2章 鼠標事件 第3章 表單事件 第4章 鍵盤事件 第5章 事件的綁定和解綁 第6章 事件對象的使用 第7章 自定義事件 cli...
摘要:目錄第章事件介紹第章鼠標事件第章表單事件第章鍵盤事件第章事件的綁定和解綁第章事件對象的使用第章自定義事件與事件用交互操作中,最簡單直接就是點擊操作。提供了兩個方法一個是方法用于監聽用戶單擊操作,另一個方法是方法用于監聽用戶雙擊操作。 目錄 第1章 事件介紹 第2章 鼠標事件 第3章 表單事件 第4章 鍵盤事件 第5章 事件的綁定和解綁 第6章 事件對象的使用 第7章 自定義事件 cli...
摘要:舉例舉例通過拖拽瀏覽器窗口,可以觸發很多次事件。不支持,所以不能在服務端用于文件系統事件。總結將一系列迅速觸發的事件例如敲擊鍵盤合并成一個單獨的事件。確保一個持續的操作流以每毫秒執行一次的速度執行。 Debounce 和 Throttle 是兩個很相似但是又不同的技術,都可以控制一個函數在一段時間內執行的次數。 當我們在操作 DOM 事件的時候,為函數添加 debounce 或者 th...
閱讀 1421·2021-10-08 10:05
閱讀 3070·2021-09-26 10:10
閱讀 887·2019-08-30 15:55
閱讀 510·2019-08-26 11:51
閱讀 447·2019-08-23 18:10
閱讀 3855·2019-08-23 15:39
閱讀 663·2019-08-23 14:50
閱讀 772·2019-08-23 14:46