开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 29682|回复: 1
收起左侧

[源码分享] mac端多次复制粘贴源码分享

[复制链接]
发表于 2021-1-12 19:47:09 | 显示全部楼层 |阅读模式   浙江省杭州市
本帖最后由 han1396964486 于 2021-1-12 19:51 编辑

工作中mac需要用到复制粘贴功能,网上找了一些发现都不是很友好,自己查资料写了一个可以实现多次复制粘贴功能,分享给有需要的人
用到模块:pyperclip、pynput


copy_and_paste_mac

mac端多次复制粘贴

运行环境

mac + python3

PS:window可以根据快捷键做修改

脚本逻辑

判断键盘按键快捷键是复制还是粘贴,将复制内容加入列表,粘贴的时候依次从列表中取出复制内容

运行方式

将代码拉到本地

git clone https://github.com/WhiteNightShadow/copy_and_paste_mac.git

下载依赖包

pip install requirements.txt -r

运行脚本

python keyboard_function.py



git地址

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 依赖包下载
# pyperclip==1.8.0
# pynput==1.7.1
import os
import time
import pyperclip
import threading
from pynput import keyboard

# 复制快捷键
copy_list = ["Key.cmd", "c"]
# 粘贴快捷键
paste_list = ["Key.cmd", "v"]
# 全局键盘多个按键
global_keyboard_list = []
# 存储复制内容
global_save_list = []


def copy_exec():
    """执行复制操作"""
    time.sleep(0.1)
    curr_copy = pyperclip.paste()
    global_save_list.append(curr_copy)
    print(f"内容:{curr_copy},加入成功:{global_save_list}")


def paste_exec():
    """执行粘贴操作"""
    if not global_save_list:
        print("没有复制内容")
        return None
    curr_copy = global_save_list[0]
    del global_save_list[0]
    pyperclip.copy(curr_copy)
    print(f"取出内容:{curr_copy}")


def on_press(key):
    """监听键盘按下"""

    global_keyboard_list.append(str(key).replace("'", ""))
    if global_keyboard_list == copy_list:
        copy_exec()
    elif global_keyboard_list == paste_list:
        paste_exec()
    print(global_keyboard_list)


def on_release(key):
    """监听键盘松开"""
    # 停止运行
    if key == keyboard.Key.esc:
        os._exit(0)
    global_keyboard_list.clear()


def monitor_keyboard():
    """监听键盘操作"""
    while True:
        with keyboard.Listener(
                on_press=on_press,
                on_release=on_release) as listener:
            listener.join()


def main():
    """
    1.线程监听键盘输入情况
    2.判断输入复制或粘贴快捷键
    3.执行复制或粘贴快捷键方法
    """
    thread_monitor = threading.Thread(target=monitor_keyboard)
    thread_monitor.start()


if __name__ == '__main__':
    main()
结帖率:100% (2/2)
发表于 2021-1-15 15:36:45 | 显示全部楼层   广东省揭阳市
感谢分享。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表