如何用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
相关产品推荐
相关产品推荐

