本小白在学习《8.6项目:多重剪贴板的详细解释》这一课时被bat文件和cmd小黑窗狠狠教育了。
查了很多资料都惜墨如金解释很少,对小黑窗cmd和bat都不讲,毕竟,这是基础的低级知识,谁会愿意给小白讲清楚呢。
没关系,我弄明白了。 现在给小白讲讲这一课。
接下来用最简单的教程教小白们怎么实践这一课的内容。
书本的解释不是很详细,经过我查找多方资料才知道怎么设置bat文件和cmd小黑窗,废话不多说,直接开始:
第一步创建test01.py文件,注意把py文件和bat文件放在一起,文件夹路径不能含有中文和空格。
第二步写下这2行代码,第一行#!python3表示用python3来运行这个文件。
第三步创建test01.bat文件。可以直接创建txt文件然后改.bat后缀。
第四步右键点击编辑,进入bat里面写入这两行,如图所示:
@py.exe py文件的绝对路径 %*
@pause
第5步设置环境变量。如图
win7在变量值末尾输入;然后把你py文件所在文件夹的位置填进去,
如果你的py文件绝对路径是 D:\py\test.py 则填入 ;D:\py\
意思是进入D:\py\这个路径就能找到你的py文件。
win10的话 编辑 新增 填入D:\py文件的地址,末尾记得加上\
填完后记得一路点击确定确定确定确定
第6步打开cmd,输入test01然后回车键
就会发现你已经成功从小黑窗启动你的py文件了。
这个过程的原理就是cmd小黑窗输入test01→小黑窗就会在环境变量找到你刚才填的路径→找到test01.bat→小黑窗打开bat执行bat里面的代码:
@py.exe E:\PythonTest\test01.py %*
@pause
bat里面的代码第一行意思是用python.exe运行E:\PythonTest\test01.py这个文件
@pause 意思是小黑窗会暂停,并且显示:请按任意键继续....
然后你的py文件就这样最终被运行了。有点绕但是不难理解。
如果有说错请纠正我。
---------------------------------------------------------------------------------
然后说说书中给出的多重剪贴板的代码,注释我用中文写好了,大伙看注释就能看懂这些代码了,现在,把这段注释后的代码填入你刚才创建的test01.py中保存。
#!python3 print('看到这条信息,表示你已经找到test01.py了。') # 导入sys模块、pyperclip模块、shelve模块 import sys,pyperclip,shelve # 打开一个shelve文件,将其命名为mcbShelf mcbShelf = shelve.open('mcb') # 检查传入的参数数量,如果len(参数)数量为3个,并且 参数[1] 为save, if len(sys.argv) == 3 and sys.argv[1].lower() == 'save': #则你现在鼠标的剪贴板内容作为值,保存到mcbShelf[参数[2]]中. mcbShelf[sys.argv[2]] = pyperclip.paste() print("你的传入参数有3个,并且参数[1]为'save',你现在的剪贴板内容作为值,保存到mcbShelf['%s']"%sys.argv[2]) # 如果参数数量为2,检查第一个参数 elif len(sys.argv) == 2: # 如果第一个参数为list,则将mcbShelf中的所有键复制到剪贴板 if sys.argv[1].lower() == 'list': pyperclip.copy(str(list(mcbShelf.keys()))) print("你的传入参数有2个,并且 参数[1] 为'list',mcbShelf的所有键已进入你的鼠标剪贴板。") # 如果第一个参数存在于mcbShelf中,则将对应的值复制到剪贴板 elif sys.argv[1] in mcbShelf: pyperclip.copy(mcbShelf[sys.argv[1]]) print("你的传入参数有2个,并且 %s 存在于mcbShelf,其对应的值填入你的鼠标剪贴板。"%sys.argv[1]) # 关闭mcbShelf mcbShelf.close()
这段python代码其实就是3个if判断逻辑:
1.判断你在小黑窗输入的参数个数如果是3个,并且你的 参数[1] 是save,则将你的 参数[2]作为键保存在mcbShelf里面,你的鼠标剪贴板的内容则作为 对应的值保存进去。
例如:输入test01 save 地球
则地球为键,剪贴板为值,被保存进去了,
2.判断你在小黑窗输入的参数个数如果是2个,并且你的 参数[1] 是list,则将mcbShelf所有的键送到你的鼠标剪贴板。比如刚才的地球。
3.判断你在小黑窗输入的参数个数如果是2个,并且你的 参数[1] in mcbShelf
则将mcbShelf[参数[1]]保存到你的剪贴板。
以下是运行结果: