在使用 Kindle PC 软件看英文电子书时,常常会配合 CopyTranslator 软件做剪切板内容翻译,但是最近发现 Kindle PC 在复制内容时,会在剪切板中自动附加上书籍的内容,就像下面这样

1
2
3
There’s nothing wrong with pursuing venture funding and attempting to grow fast like eBay

Walling, Rob; Taber, Mike. Start Small, Stay Small: A Developer's Guide to Launching a Startup (Kindle位置28). The Numa Group, LLC. Kindle 版本.

上面的内容,第一行是我要复制的内容,Walling, Rob; Taber, Mike. Start Small, Stay Small: A Developer's Guide to Launching a Startup (Kindle位置28). The Numa Group, LLC. Kindle 版本.是Kindle PC自动附加的书籍信息内容,这一点很烦人。

要解决这个问题其实很简单,只要监控剪切板变化时,将剪切板中的字符串,去掉自动附加的内容,然后将新的字符串替换回剪切板即可。接下来我们使用Python来做这件事情,代码只需要很少几行即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import pyperclip
import time

last_string = pyperclip.paste()

# 要删除的字符串
clear_str = "Walling, Rob; Taber, Mike. Start Small, Stay Small: \
A Developer's Guide to Launching a Startup"

while True:
time.sleep(0.02)
string = pyperclip.paste()
# 当剪切板内容变化时
if string != last_string and string != '':
# 查找字符串是否包含要删除的字符串
clear_index = string.find(clear_str)

# 如果字符串包含要删除的字符串,则截取之前的内容
if clear_index >= 0:
string = string[0:clear_index]
# 将新的字符串替换回剪切板
pyperclip.copy(string)
print(string)
last_string = string

注意,上面用到 了 pyperclip 这个库,在运行前需要使用命令 pip3 install pyperclip 来安装一下。

将代码保存为 clip.py,然后运行脚本,python3 clip.py。接下来再在Kindle PC软件中复制内容,就会实时去掉它自动附加的内容。注意要将代码中 clear_str 替换为你所看的电子书,被自动附加的内容。

下面是原始的效果

p002601_before

下面是使用脚本后的效果

p002602_after

平时遇到的一些小问题时,可以想一下是否可以使用一小段代码解决一下,或许很简单。