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

Python使用Tweepy开发Twitter bot遇int() base10转换ValueError如何解决

问题排查与解决方案

错误触发原因

  • 核心问题来自last_seen.txt的文件内容:read_last_seen函数会直接读取文件内容转换为int类型,但此时文件内的内容不是合法的十进制数字,混入了反引号、空格等非数字字符,你报错信息里显示待转换的内容是反引号,说明文件被误写入了这个符号。
  • 代码缺少首次运行兼容逻辑:第一次运行项目时如果last_seen.txt是空白文件,读取到的内容是空字符串,本身就会触发int转换失败的报错。

解决方法

1. 清理本地配置文件

打开项目目录下的last_seen.txt,删除所有内容,填入一个合法的起始推文ID即可。如果不知道初始ID填什么,可以先填1,首次运行会从你账号收到的最早的@提醒开始处理。

2. 优化代码增加容错逻辑

可以给文件读写部分加异常捕获,同时改用with语句操作文件,避免手动调用close()时因程序异常退出导致的文件内容写入失败问题,优化后的代码如下:

import time
import tweepy

FILE_NAME = 'last_seen.txt'

def read_last_seen(FILE_NAME):
    try:
        with open(FILE_NAME, 'r') as file_read:
            content = file_read.read().strip()
            # 校验内容是否为纯数字
            if content.isdigit():
                return int(content)
            # 内容非法时返回默认起始值
            return 1
    except (FileNotFoundError, ValueError):
        # 兼容文件不存在、内容转换失败的所有异常情况
        return 1

def store_last_seen(FILE_NAME, last_seen_id):
    with open(FILE_NAME, 'w') as file_write:
        file_write.write(str(last_seen_id))

def reply():
    tweets = api.mentions_timeline(read_last_seen(FILE_NAME), tweet_mode='extended')
    for tweet in reversed(tweets):
        if '#weatherbot_gif' in tweet.full_text.lower():
            print(f"{tweet.id} - {tweet.full_text}")
            api.update_status(f"@{tweet.user.screen_name} Auto reply, like, and retweet works :)", tweet.id)
            api.create_favorite(tweet.id)
            api.retweet(tweet.id)
            store_last_seen(FILE_NAME, tweet.id)

# 补充你的Twitter API鉴权逻辑,示例如下,密钥从Twitter开发者平台获取
# auth = tweepy.OAuthHandler("你的API_KEY", "你的API_SECRET")
# auth.set_access_token("你的ACCESS_TOKEN", "你的ACCESS_TOKEN_SECRET")
# api = tweepy.API(auth, wait_on_rate_limit=True)

while True:
    reply()
    time.sleep(15)

注意事项

  • 确保你已经完成了api对象的鉴权初始化,未正确填入密钥会触发后续接口调用报错。
  • 如果你使用的是最新版tweepy库,部分接口命名和老版本有差异,遇到接口不存在的报错对应调整调用方式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:15:03