楔子
pandas里面有这么一个方法:pd.read_clipboard,可以根据你复制的内容生成DataFrame。是的,就是我们平时选中,然后复制、或者Ctrl+C时拷贝的内容,所以比较神奇,那么pandas到底是怎么做到的,它是怎么读出我们使用Ctrl +C复制的内容呢。
看了一下源码,非常的复杂,方法是使用了ctypes,然后调用了操作系统的一个动态库实现的。ctypes是专门来调用C、C++使用的,但是我们知道python有一个pywin32模块,对于Windows操作系统提供的接口进行了封装。所以下面我们使用pywin32来实现我们平时使用的复制粘贴功能。
首先是安装:pip install pywin32
实现复制
下面我们来看看如何使用这个模块实现复制功能,另外关于pywin32这个模块,它的家族非常的庞大。
里面有很多的win32xxx.pyd,我们直接调用就行。
# win32clipboard专门用来复制粘贴的
import win32clipboard as wcb
import win32con as wc
# 打开复制粘贴板
wcb.OpenClipboard()
# 我们之前可能已经Ctrl+C了,这里是清空目前Ctrl+C复制的内容。但是经过测试,这一步即使没有也无所谓
wcb.EmptyClipboard()