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

如何用Python实现从文本文件逐行发推文的Twitter机器人

解决Twitter机器人逐行发推文的段落/空行处理问题

看起来你已经搭建好了一个基础的Twitter机器人框架啦!不过从你的需求和代码来看,可能会遇到两个小问题:一是每行末尾的换行符会被带到推文中,二是有些看似空的行(比如只有空格或制表符的行)可能没被正确过滤掉。下面给你调整一下代码,完美实现逐行发推文的需求:

优化后的代码

import tweepy
from time import sleep
from credentials import *

# 初始化API认证
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

def tweet():
    # 读取文件内容并处理每行
    with open('quotes.txt', 'r') as my_file:
        # 逐行读取,同时去掉每行末尾的换行符
        file_lines = [line.rstrip('\n') for line in my_file]
    
    for line in file_lines:
        try:
            # 过滤掉空行(包括只有空白字符的行)
            if not line.strip():
                print("跳过空行")
                continue
            
            # 可选:检查推文长度是否符合Twitter的280字符限制
            if len(line) > 280:
                print(f"推文过长({len(line)}字符),跳过:{line[:50]}...")
                continue
            
            print(f"正在发布推文:{line}")
            api.update_status(line)
            print("发布成功,等待1小时")
            sleep(3600)
        
        except tweepy.TweepError as e:
            print(f"发布失败:{e.reason}")
            sleep(2)

if __name__ == "__main__":
    tweet()

关键改动说明

  • 文件读取优化:用with语句自动管理文件资源,避免忘记关闭文件;同时用列表推导式直接去掉每行末尾的\n,避免推文中出现多余换行。
  • 空行过滤增强:用not line.strip()来判断真正的空行(包括只有空格、制表符的行),比原来的line != '\n'更严谨。
  • 增加长度检查:Twitter推文限制280字符,加上这个判断可以避免因内容过长导致的发布失败。
  • 日志更清晰:增加了更明确的打印信息,方便你调试和查看机器人运行状态。

这样调整后,你的机器人就能准确地把quotes.txt里的每一行内容单独作为一条推文发布,完美跳过空行,也不会带多余的换行符啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:54:03