如何修复Windows下Reddit Meme爬虫的Error 13权限拒绝问题
权限拒绝Error 13:Reddit Meme爬取程序无法写入指定目录
我开发了一个从Reddit爬取meme并保存到指定目录的Python程序,但每次运行代码时,都会在meme应保存的指定目录出现Error 13权限拒绝错误,已花费3天时间排查此问题,恳请帮助。
我的代码
import os import praw import requests from datetime import datetime def downloadMemes(): # 获取Reddit凭证 r = praw.Reddit(client_id = 'iV5Qtn1sC7-AvS26PfYRJw', client_secret = '3ZMMo2kKwN0a0uG2mly6GnN8rSmkPQ', user_agent = 'ytbot') # 检查输出文件夹是否存在 if os.path.exists("memes"): pass if not os.path.exists("memes"): os.mkdir("memes") if os.path.exists("newMemes"): pass if not os.path.exists("memes"): os.mkdir("newMemes") # 根据星期几选择子版块和帖子数量 dt = datetime.now() day = dt.weekday() if day == 0: subreddit = r.subreddit('Memes') posts = subreddit.hot(limit=9) if day == 1: subreddit = r.subreddit('dankmemes') posts = subreddit.hot(limit=9) if day == 2: subreddit = r.subreddit('AnarchyChess') posts = subreddit.hot(limit=9) if day == 3: subreddit = r.subreddit('ProgrammerHumor') posts = subreddit.hot(limit=9) if day == 4: subreddit = r.subreddit('school_memes') posts = subreddit.hot(limit=9) if day == 5: subreddit = r.subreddit('wholesomememes') posts = subreddit.hot(limit=9) if day == 6: subreddit = r.subreddit('AnimalMemes') posts = subreddit.hot(limit=9) # 下载帖子 for post in posts: url = (post.url) file_name = url.split("/") file_name = file_name[-1] print(file_name) r = requests.get(url) with open("memes/" + file_name,"wb") as f: f.write(r.content)
报错信息
Traceback (most recent call last): File "C:\Users\LoneWanderer\source\repos\YT shorts bot\main.py", line 6, in <module> downloadMemes() File "C:\Users\LoneWanderer\source\repos\YT shorts bot\program_assets\memeDownloader.py", line 56, in downloadMemes with open("memes/" + file_name,"wb") as f: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PermissionError: [Errno 13] Permission denied: 'memes/'
已尝试的解决方法
- 替换过循环逻辑
- 在Linux虚拟机上运行程序,错误完全一致
内容的提问来源于stack exchange,提问作者Matthew Titus
相关产品推荐
相关产品推荐

