一个简单的剪贴板记录代码

  本代码主要用到的模块是pyperclip。

 

 1 import pyperclip
 2 import sys
 3 import time
 4 import json
 5 import threading
 6 
 7 
 8 
 9 class ClipBoardSave:
10     def __init__(self, filename) -> None:
11         self.filename = filename                 #用来持久化存储剪贴板的内容的文件
12         self.clip_list = []             #临时存储剪贴板数据的列表
13     
14 
15     def run(self):
16         try:
17             while True:
18                 if pyperclip.paste():
19                     value = pyperclip.paste()
20                     local_time = time.asctime( time.localtime(time.time()) )   #取得时间,来标识什么时间获取到的剪贴板内容
21                     if value not in self.clip_list:
22                         self.clip_list.append({local_time:value})
23 
24                 self.write_file_timer()
25                 
26                 time.sleep(3)
27         except KeyboardInterrupt:
28             print("Exit program")
29             sys.exit(0)
30     
31     def write_file_timer(self):
32         with open(self.filename, 'a+') as f:
33             f.write(json.dumps(self.clip_list,ensure_ascii=False))         #需要ensure_ascii设置为false来解决中文乱码的问题
34         self.clip_list = []
35         timer = threading.Timer(10, self.write_file_timer)                 #用定时器周期性的持久化写文件(以追加方式)
36         timer.start()
37 
38 
39 if __name__ == "__main__":
40     cliper = ClipBoardSave('clip_log.txt')
41     cliper.run()

 

posted @ 2022-05-09 14:23  Jason_huawen  阅读(54)  评论(0编辑  收藏  举报