使用pickle.load加载桌面keys.p文件时提示找不到文件或目录
解决Pickle反序列化时的"no such file or directory"错误
嘿,这个问题我碰到过好多次啦!本质就是Python找不到你的keys.p文件——因为你把它存在桌面,但Python默认会在当前运行脚本的目录里找,而不是桌面。给你几个靠谱的解决办法:
直接使用绝对路径(最直接)
你需要把文件的完整路径写进去,而不是只写文件名。不同系统的桌面路径格式不一样:- Windows系统:路径一般是
C:\Users\你的用户名\Desktop\keys.p,注意要加个r前缀避免转义字符问题,代码如下:import pickle info = pickle.load(open(r"C:\Users\你的用户名\Desktop\keys.p", "rb")) - macOS/Linux系统:路径是
/Users/你的用户名/Desktop/keys.p,代码示例:import pickle info = pickle.load(open("/Users/你的用户名/Desktop/keys.p", "rb"))
记得把上面的“你的用户名”换成你自己的系统用户名哦。
- Windows系统:路径一般是
动态获取桌面路径(更灵活,推荐)
硬编码用户名不太方便,换电脑就失效了。可以用Python的内置模块自动获取桌面路径:
用pathlib(Python 3.4+推荐,语法更简洁):from pathlib import Path import pickle desktop_file = Path.home() / "Desktop" / "keys.p" info = pickle.load(open(desktop_file, "rb"))或者用
os模块(兼容所有Python版本):import os import pickle desktop_file = os.path.join(os.path.expanduser("~"), "Desktop", "keys.p") info = pickle.load(open(desktop_file, "rb"))先确认文件的真实位置
有时候可能是你记错了文件位置,或者文件名拼写错了:- 右键
keys.p文件,查看“属性”(Windows)或“显示简介”(macOS),确认完整路径和文件名是否正确; - 注意系统是否隐藏了文件后缀名,比如实际文件名可能是
keys.p.txt,但你看到的是keys.p,这也会导致找不到文件。
- 右键
切换工作目录到桌面
先让Python切换到桌面目录,再直接打开文件名:import os import pickle # Windows系统示例 os.chdir(r"C:\Users\你的用户名\Desktop") # macOS/Linux系统示例 # os.chdir("/Users/你的用户名/Desktop") info = pickle.load(open("keys.p", "rb"))
内容的提问来源于stack exchange,提问作者Bosiff
相关产品推荐
相关产品推荐

