使用shutils复制文件出现Errno 13权限错误该如何解决
复制kaggle.json出现PermissionError: [Errno 13]报错的解决方案
1 修正复制函数的参数使用错误
你当前使用的shutil.copyfile()要求第二个入参必须是完整的目标文件路径,不能仅传目录路径,这是触发报错的最常见原因。
你可以二选一修改代码:
- 给目标路径补全文件名:
import shutil shutil.copyfile("C:/Users/pablo/Downloads/kaggle.json", "C:/Users/juan/.kaggle/kaggle.json")
- 改用支持目录作为目标的
shutil.copy()函数:
import shutil shutil.copy("C:/Users/pablo/Downloads/kaggle.json", "C:/Users/juan/.kaggle/")
修改后如果仍报权限错误,再按下方步骤排查:
2 排查目录权限问题
- 先确认
C:/Users/juan/.kaggle目录是否存在,不存在的话先创建目录:
import os os.makedirs("C:/Users/juan/.kaggle", exist_ok=True)
- 右键点击
C:/Users/juan/.kaggle文件夹,依次选择「属性」-「安全」,检查当前Windows登录账号是否拥有该目录的写入权限,没有的话勾选「写入」「完全控制」权限,应用设置后重试。 - 如果是通过IDE(VS Code、PyCharm等)运行代码,右键点击IDE图标选择「以管理员身份运行」,再执行复制代码。
3 手动操作兜底
如果代码层面一直报错,可以直接打开下载目录,手动把kaggle.json粘贴到C:/Users/juan/.kaggle目录下,和代码复制效果完全一致。
内容的提问来源于stack exchange,提问作者PassaroBagante
相关产品推荐
相关产品推荐

