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

新手开发者求助:推特Bot逐行发《蜜蜂电影》脚本无报错但无输出

问题分析与修复方案

你的代码存在几个关键问题,导致没有执行效果:

核心问题

  • 重复打开文件:外层的while循环每次都会重新打开script.txt,导致每次循环都从文件开头读取,逻辑完全混乱。
  • 行读取逻辑冲突:for word in f已经在逐行遍历文件内容,此时再调用f.readline()会跳过当前行的下一行,导致大量内容被跳过,甚至可能直接读到文件末尾,没有有效内容可发布。
  • 未正确处理空行:仅判断word == '\n'不够可靠,有些空行可能包含空格或制表符,无法被正确跳过。
  • 资源未正确释放:直接open文件后没有关闭,容易引发资源泄漏。
  • 缺少必要模块导入:代码中使用了time.sleep但未导入time模块,这会导致报错(你说无报错可能是代码没执行到这部分,或者你没贴全导入部分)。

修复后的代码

import time

# 确保api已完成推特API的认证初始化
with open('script.txt', 'r') as f:
    for line in f:
        # 去除行首尾的空白字符(包括换行符)
        cleaned_line = line.strip()
        # 跳过空行
        if not cleaned_line:
            continue
        # 发布推文
        api.update_status(cleaned_line)
        # 间隔2分钟
        time.sleep(120)

额外检查点

  1. 确认你的api对象已经正确完成推特API的认证(包括API密钥、API密钥密码、访问令牌、访问令牌密码的配置),如果认证失败,API调用会静默失败(无报错但无效果)。
  2. 如果需要循环重复发布脚本内容,可以在with语句外添加一层循环,但注意不要每次循环都重新打开文件,比如:
import time

while True:
    with open('script.txt', 'r') as f:
        for line in f:
            cleaned_line = line.strip()
            if not cleaned_line:
                continue
            api.update_status(cleaned_line)
            time.sleep(120)
    # 可选:全部发布完后等待一段时间再重复
    # time.sleep(3600)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:17:21