一个简单的剪贴板记录代码
本代码主要用到的模块是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()
STRIVE FOR PROGRESS,NOT FOR PERFECTION