pyperclip介绍
pyperclip是一个python库用于操作剪贴板,可以非常方便地将文本复制到剪贴板或从剪贴板获取文本。
通过pip进行安装:pip install pyperclip
pyperclip的github地址
pyperclip使用
复制到剪贴板
import pypercliptext = "Hello, World!"
pyperclip.copy(text)
从剪贴板读取
import pyperclipcopied_text = pyperclip.paste()
print(copied_text)
可以看出,pyperclip的核心功能是非常简单的,只需要这两个功能,就能发挥非常大的作用。
实际例子
生成当前时间复制到剪贴板
import pyperclip
import datetimecurrent_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
pyperclip.copy(current_time)
运行程序以后,通过粘贴,就可以得到当前的时间。
替换剪贴板中的内容
import pypercliptext = pyperclip.paste()
new_text = text.replace("sb", "小可爱")pyperclip.copy(new_text)
print("替换后的文本已复制到剪贴板!")
运行程序以后,剪贴板的内容就会根据需要进行替换。
当你复制“你可真是一个sb“之后,运行程序,剪贴板的内容就会变为,”你可真是一个小可爱“。
密码管理器快速复制信息
import pyperclipusername = "sagegrass"
password = "123456"# 将用户名复制到剪贴板
pyperclip.copy(username)
print("用户名已复制到剪贴板")# 将密码复制到剪贴板
pyperclip.copy(password)
print("密码已复制到剪贴板")
实际使用中,应该分别复制,然后由用户进行依次粘贴。比如说,在密码管理器的界面上,可能提供一个“复制”的按钮,当点击这个按钮,就可以将内容安全的复制到剪贴板中。在密码管理器中,这样的实现是一个好的安全的方法,来保证密码不直接出现。
注意:如果复制以后的密码长时间存储于剪贴板中,同样可能存在安全风险,因此密码管理器通常会选择在几秒钟后,清除剪贴板上复制的内容。
import pyperclip
import timepassword = "123456"pyperclip.copy(password)
print("密码已复制到剪贴板")time.sleep(10)# 一定时间以后,如果发现剪贴板的内容还是密码
# 那么就用空内容将其清除
if pyperclip.paste() == password:pyperclip.copy("")
这样,在时间范围以内,仍然可以持续复制粘贴,但是时间到了以后,就不能继续使用了。
监听剪贴板变化
剪贴板可能是一个泄露隐私的关键位置,例如,如果有程序在监听剪贴板,那么你复制粘贴的所有内容,都会被其监测到。
import pyperclip
import timelast_text = pyperclip.paste()while True:time.sleep(0.5)# 检查剪贴板内容是否有变化current_text = pyperclip.paste()# 如果剪贴板的内容不一样了,那么就是变化了if current_text != last_text:print("剪贴板内容已更新:", current_text)last_text = current_text
注意:由于可能侵犯他人隐私,因此,不要随意使用这个功能,尤其是不应该利用该功能去窃取他人剪贴板!
从文本中提取邮箱
通过正则表达式,可以根据规则,从复制的文本中提取想要的内容。例如,根据规则,提取文本中出现的所有邮箱地址。
import pyperclip
import re# 从剪贴板获取文本
text = pyperclip.paste()# 使用正则表达式查找邮箱
email_pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
emails = re.findall(email_pattern, text)if emails:# 将提取的邮箱复制到剪贴板pyperclip.copy(", ".join(emails))print("已提取邮箱并复制到剪贴板:", emails)
else:print("没有找到邮箱地址")