2020年是个不幸的一年,由于疫情,各种事情都遭到了延迟,复工、开学似乎成为了一种愿望。各大企业为了降低风险,都纷纷出现了裁人、降薪的现象。大量人员在家中待业,入不敷出,还面临着房贷车贷的压力。在这里也真心希望,疫情早点过去,还我们一个纯净的世界。
由于疫情,我的一个朋友小浩都差点延期毕业了,不过还好,由于疫情相关政策的调整,他现在可以在家进行远程答辩,避免了延迟答辩的尴尬。
不过他最近也挺烦恼的,由于毕业又没有延期了,论文也要加紧地赶进度,不然可就真的要延期毕业了。
由于需要抓紧写论文,他时不时就忘记一些东西,例如,论文有些部分需要引用很多文献, 需要在网上大量地查找对应的文献资料,导致他都分不清 哪段话 是需要引用 哪些文献 了。
他之前就知道我是学计算机的,于是马上一通求助电话就打过来了。听他诉说完之后,也让我想起了我那段写论文的悲催时光。于是我决定帮他一把。
先思考一下,如何才能解决这个问题:我们可以将引用论文的标题和对应的内容形成一个键值对的形式存储起来,论文的标题作为key,对应的内容作为value。当需要时,只需要输入论文的标题,就可以找到对应的内容进行引用。
这时我想到可以用刚学到的shelve模块来进行存储,用pyperclip来复制需要的内容。然后通过传入不同的key,就能将需要的内容复制到剪贴板上。
话不多说,实战一波,贴下代码:
import shelve, pyperclip, sys
# 获取存储的内容,不存在就进行创建 .代表当前目录,你也可以用绝对路径:
# 例如: F:\\db\\mcb
mcpShelve = shelve.open('.\\db\\mcb')
# 保存剪切板的内容
if len(sys.argv) == 3 and sys.argv[1].lower() == 'save':
mcpShelve[sys.argv[2]] = pyperclip.paste()
elif len(sys.argv) == 2:
# 列出关键字并加载内容
if sys.argv[1].lower() == 'list':
print(str(list(mcpShelve.keys())))
elif sys.argv[1] in mcpShelve:
pyperclip.copy(mcpShelve[sys.argv[1]])
else:
print(pyperclip.paste())
mcpShelve.close()
接下来我们来实操一波:
首先使用cmd命令进入到程序的目录,例如我的程序是放到F:\\test 目录下
然后复制你存储的内容
然后输入命令将数据保存
py mcb.py save 静夜思
这样我们就将数据存储下来了,如果后续需要使用,我们可以使用:
py mcb.py 静夜思
将对应数据存储到剪切板中。
我们使用上面程序,再存储一首 春江花月夜:
接下来我们来获取数据,如果不记得存的标题是什么了,可以使用:
py mcb.py list
来查看所有标题。
例如我们想看到静夜思的内容,可以输入:
py mcb.py 静夜思
我们把获取的内容粘贴出来:
然后我们再获取 春江花月夜 的内容:
py mcb.py 春江花月夜
这样小浩同学的困扰也就解决了,他妈妈再也不用担心他的论文写不好了。
这个程序也有很多的不足,例如没有一个操作的界面。导致操作起来比较复杂,在这里我推荐一个好用的软件KeePass ,就是这个程序的升华版本,很多企业也在使用它,一般是用来保存密码,而且很安全。
好了,我要去想小浩同学讨要报酬了,明天见!!!
喜欢本文的话,可以关注以下公众号,每天定时更新一篇python学习日记,让我们一起成长!