今天天氣突然變冷,下午快上課的時候下起了雨,所以果斷逃了課,哈哈哈
在宿舍看完部電影後,覺得有點無聊
突發奇想想用python寫個統計鍵盤使用情況的小指令碼
好了,廢話不多說,上**
import pynput
import pymysql
from copy import deepcopy
"""create database db_key_master;
create table `tb_key_day` (
`key_name` varchar(30) default null,
`count` int(11) default null,
`record_date` date default null
) engine=innodb default charset=utf8;
使用方法:
先在mysql中建立資料庫和表
確保電腦上安裝了pymysql和pynput庫
沒裝的話,pip install下
然後執行此檔案,按pause退出
可以自己寫個程式分析每天的鍵盤使用情況
"""address = 'localhost'
user = 'root'
password = 'root'
database = 'db_key_master'
conn = pymysql.connect(address, user, password, database)
cursor = conn.cursor()
init_dictionary = {}
key_dictionary = {}
# 從資料庫中查詢資料
def get_key_data():
dictionary = {}
sql = 'select key_name, count from tb_key_day where record_date =curdate()'
cursor.execute(sql)
result_set = cursor.fetchall()
if len(result_set) > 0:
for row in result_set:
dictionary[row[0]] = row[1]
return dictionary
# 寫入資料到資料庫
def write_key_data(init_dict, final_dict):
update_sql = "update tb_key_day set count= where key_name='' and record_date=curdate()"
insert_sql = "insert into tb_key_day(key_name, count, record_date) values ('', , curdate())"
for key in final_dict:
if key in init_dict:
try:
cursor.execute(update_sql.format(final_dict[key], key))
except:
print('寫入資料出錯')
else:
try:
cursor.execute(insert_sql.format(key, final_dict[key]))
except:
print('寫入資料出錯')
conn.commit()
def on_key_release(key):
key_string = str(key).replace('\'', '')
if key_string == '\\\\':
key_string = '反斜槓'
if key_string in key_dictionary:
key_dictionary[key_string] += 1
print('{},{}'.format(key_string, key_dictionary[key_string]))
else:
key_dictionary[key_string] = 1
print('{},{}'.format(key_string, key_dictionary[key_string]))
if key_string == 'key.pause':
write_key_data(init_dictionary, key_dictionary)
conn.close()
return false
# sys.exit(0)
if __name__ == "__main__":
key_dictionary = get_key_data()
init_dictionary = deepcopy(key_dictionary)
with pynput.keyboard.listener(on_release=on_key_release) as listener:
listener.join()
就這樣了,**比較簡單
沒有mysql資料庫的可以改一下,寫log檔案到本地
有了資料可以分析下每天敲的最多的鍵是哪個,我的是backspace,哈哈哈哈
使用pyhook3 pynput實現鍵盤連發
pyhook在視窗標題為中文時會報錯,必須安裝pyhook3。pip install pyhook3 可能存在以下問題 swig.exe不存在 提示缺少vc 14.0 visual c build tools 2015 cl.exe不存在 開啟 c program files x86 microso...
Pynput使用組合鍵,以及同時監控鍵盤和控制鍵盤
我想寫乙個使用快捷鍵來執行網頁搜尋的小軟體,但發現網上還沒有很多關於pynput使用組合鍵的帖子,只好自己寫乙個了.我剛開始的時候找了半天,發現了乙個人使用多執行緒的方式來實現這個功能,但我覺得這個東西還是越簡單越好 from pynput import keyboard from pynput.k...
在Oracle中使用to char按時間統計
如果oracle資料庫的user access表裡有user name,login time欄位儲存使用者的登陸時間,可以使用to char函式就行分時段統計 1.按小時統計訪問人數,並且按訪問次數降序顯示 select to char login time,hh24 count from user...