《Python编程快速上手》第8章Multiclipboard项目运行报错求助
问题:《Python编程快速上手》Multiclipboard项目运行报错
我是编程零基础新手,正在学习《Python编程快速上手》第8章的Multiclipboard项目,运行代码时出现了一些日志信息,无法理解问题所在。
项目代码
import shelve import sys import pyperclip mcb_shelf = shelve.open('mcb') # Save the clipboard contents to keyword if len(sys.argv) == 3 and sys.argv[1].lower() == 'save': mcb_shelf[sys.argv[2]] = pyperclip.paste() print(sys.argv[2] + ' saved successfully') # Delete keyword and associated content elif len(sys.argv) == 3 and sys.argv[1].lower() == 'delete': del mcb_shelf[sys.argv[2]] print([sys.argv[2] + ' deleted']) elif len(sys.argv) == 2: # List stored keywords if sys.argv[1].lower() == 'list': pyperclip.copy(str(list(mcb_shelf.keys()))) print('List of all keywords copied to clipboard') # Load content associated with chosen keyword to the clipboard elif sys.argv[1] in mcb_shelf: pyperclip.copy(mcb_shelf[sys.argv[1]]) print(sys.argv[1] + ' loaded successfully') # Inform user that their input doesn't match a saved keyword else: print('That keyword doesn\'t exist - so nothing' 'has been loaded to the clipboard') mcb_shelf.close()
运行后出现的日志信息
[main 2023-06-10T16:13:09.358Z] update#setState idle [30792:0610/121311.895:ERROR:jump_list.cc(301)] Failed to append custom category 'Recent Folders' to Jump List due to system privacy settings. [main 2023-06-10T16:13:11.907Z] updateWindowsJumpList#setJumpList unexpected result: customCategoryAccessDeniedError [main 2023-06-10T16:13:14.389Z] Extension host with pid 31136 exited with code: 0, signal: unknown.
运行环境与相关文件
- 运行环境:VSCode 搭配 Anaconda Python 3.11
- 脚本所在仓库有一个
.bat文件,内容如下:
@C:\Users\myname\AppData\Local\anaconda3\python.exe C:\Repository\mcb.py %*
解答
错误含义说明
这些日志和你的Python脚本功能无关,都是VSCode自身的运行日志,具体解释:
jump_list.cc相关错误:Windows系统隐私设置阻止VSCode修改任务栏跳转列表(比如添加“最近文件夹”分类),属于VSCode的UI层面问题,不影响脚本执行。Extension host exited with code:0:VSCode的扩展宿主进程正常退出,code:0代表无异常,不是错误。update#setState idle:VSCode的更新服务处于空闲状态,是正常状态日志。
解决步骤
验证脚本功能是否正常
打开命令提示符(CMD),直接运行你的bat文件测试核心功能:- 复制一段任意内容,执行:
mcb.bat save test,如果输出test saved successfully,说明保存功能正常。 - 再执行:
mcb.bat test,此时剪贴板内容应该恢复为之前复制的内容,说明加载功能正常。
若上述测试正常,说明脚本本身没有问题,那些VSCode日志可以忽略。
- 复制一段任意内容,执行:
消除VSCode的这类日志(可选)
若不想看到这些日志,可禁用VSCode的跳转列表功能:- 打开VSCode,按
Ctrl+,打开设置界面。 - 在搜索框输入
window.enableJumpList,取消勾选该选项。 - 重启VSCode后,这类跳转列表相关的错误日志就会消失。
- 打开VSCode,按
内容的提问来源于stack exchange,提问作者anonymous_noob
相关产品推荐
相关产品推荐

