如何解决远程RDP服务器Python脚本报Errno 13 Permission Denied错误
问题根因与修复方案
你遇到的Errno 13 Permission Denied错误首先来源于代码的路径错误,其次才是可能的系统权限配置问题,按以下步骤修复即可:
1. 修复代码路径错误
你在sendPhoto方法中错误地尝试打开文件夹而不是截图文件,这是触发报错的核心原因:
- 原错误代码:
bot.sendPhoto(chat_id, photo=open('C:\\Users\\admin\\Downloads\\bot', 'rb'))
- 修改为实际的截图路径,建议添加
r前缀避免转义字符问题:
bot.sendPhoto(chat_id, photo=open(r'C:\Users\admin\Downloads\bot\img\screenshot.png', 'rb'))
额外优化建议:用with语句管理文件句柄,避免资源占用导致的文件锁问题:
with open(r'C:\Users\admin\Downloads\bot\img\screenshot.png', 'rb') as f: bot.sendPhoto(chat_id, photo=f)
2. 修复其他代码逻辑错误
- 你写的
while msg['text'] == '/capture'会导致收到一次指令后进入死循环,无法处理后续消息,建议修改为if判断 - 类构造方法需要双下划线命名
__init__,你当前写的def init不符合Python语法规范,会导致类初始化失败
3. 权限配置验证
如果修复路径后仍然报权限错误,按以下操作确认权限配置:
- 确认运行Python脚本的账户对
C:\Users\admin\Downloads\bot\img目录拥有读写权限,可手动在该目录下新建/修改文件测试 - 如果脚本是作为Windows后台服务运行,需要给服务对应的运行账户(如SYSTEM、NETWORK SERVICE)单独授权,仅给RDP登录用户授权不生效
- 如果你修改权限后未生效,尝试重启脚本进程,权限变更需要进程重新读取后才会生效
内容的提问来源于stack exchange,提问作者pursuiter___
相关产品推荐
相关产品推荐

