You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PRAW获取的Reddit子版块信息存储到TXT文件?

解决Reddit用户Top5子版块写入TXT文件的类型错误问题

你碰到的TypeError: write() argument must be str, not Subreddit错误,根源是submission.subreddit返回的是PRAW库的Subreddit对象,不是字符串类型,而文件的write()方法只接受字符串参数。

下面是两种可行的修正方案:

方案1:将Subreddit对象转为字符串

直接用str()函数把Subreddit对象转换成字符串,再写入文件:

reddit = praw.Reddit(
    client_id="",
    client_secret="",
    password="",
    user_agent="",
    username="",
)

# 用with语句自动处理文件关闭,更安全
with open('file.txt', 'w', encoding='utf-8') as f:
    for submission in reddit.redditor("").top(limit=5):
        # 转换为字符串后写入,每个子版块单独占一行
        f.write(str(submission.subreddit) + '\n')

方案2:直接获取子版块名称属性

Subreddit对象自带display_name属性,直接取这个属性就能拿到子版块的名称字符串:

reddit = praw.Reddit(
    client_id="",
    client_secret="",
    password="",
    user_agent="",
    username="",
)

with open('file.txt', 'w', encoding='utf-8') as f:
    for submission in reddit.redditor("").top(limit=5):
        # 写入子版块名称,每个占一行
        f.write(submission.subreddit.display_name + '\n')

注意:推荐使用with语句操作文件,它会在代码块结束后自动关闭文件,避免手动关闭时可能出现的遗漏或异常问题。

内容的提问来源于stack exchange,提问作者Marcus White

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 17:10:25