如何使用Tweepy在单条推文中添加多行文本实现每日发帖机器人
解决Twitter每日自动发帖机器人的文本拼接问题
你的核心问题是没正确生成包含"Day X"和标签的换行文本,同时原代码还有变量赋值、语法错误,以下是修正方案:
原代码的问题点
day_add = day = day + 1会同时覆盖day和day_add的值,逻辑冗余且易出错day_num = "Day ", day_add生成的是元组而非字符串,无法直接用于文本拼接- 两次尝试的写法都存在语法错误:
random.choice仅接受一个参数,create_tweet不能直接传多个位置参数
修正后的基础实现代码
import random # 确保已正确初始化Twitter API的client对象 # 标签选项字典 hashtag = { "0": 'Ex1', "1": 'Ex2', "2": 'Ex3', "3": 'Ex4', "4": 'Ex5' } # 示例day值(实际使用需持久化,见下文) day = 0 day_add = day + 1 # 用f-string生成"Day X"格式的字符串 day_text = f"Day {day_add}" # 随机选择一个标签 selected_tag = random.choice(list(hashtag.values())) # 用换行符\n拼接推文内容 tweet_content = f"{day_text}\n{selected_tag}" # 发送推文 client.create_tweet(text=tweet_content)
每日自动递增day值的持久化实现
如果需要每天自动累加day数,要把day值保存到本地文件(避免每次运行重置为0):
import random # 读取上次保存的day值 try: with open("day_counter.txt", "r") as file: day = int(file.read().strip()) except FileNotFoundError: # 文件不存在时初始化为0 day = 0 # 更新day值 day_add = day + 1 # 保存更新后的day值到文件 with open("day_counter.txt", "w") as file: file.write(str(day_add)) hashtag = { "0": 'Ex1', "1": 'Ex2', "2": 'Ex3', "3": 'Ex4', "4": 'Ex5' } day_text = f"Day {day_add}" selected_tag = random.choice(list(hashtag.values())) tweet_content = f"{day_text}\n{selected_tag}" client.create_tweet(text=tweet_content)
内容的提问来源于stack exchange,提问作者Squid
相关产品推荐
相关产品推荐

