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

如何按特定顺序逐个上传指定文件夹内的图片(Twitter bot开发)

Tweepy实现Twitter机器人按指定顺序批量上传文件夹图片

要实现按指定顺序遍历文件夹上传所有图片,只需引入Python内置的文件处理模块,补充文件筛选、排序、循环上传逻辑即可,核心调整点如下:

  • 导入内置os、time模块,分别处理路径遍历/文件判断、上传间隔控制
  • 新增配置项:指定目标图片文件夹路径、支持上传的图片格式后缀、上传间隔时长
  • 遍历目标文件夹,过滤掉子文件夹和非图片格式的文件
  • 对筛选出的图片列表按需求排序,默认按文件名字典序升序排列,支持自定义排序规则
  • 循环遍历排序后的图片列表,逐个执行上传操作,上传间隔期休眠避免触发平台限流

修改后的可直接运行代码如下:

import os
import time
import tweepy

# 平台接口密钥配置
consumer_key = 'XXXX'
consumer_secret = 'XXXX'
access_token = 'XXXX'
access_token_secret = 'XXXX'

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)

# 上传配置
TARGET_IMG_FOLDER = "./your_image_folder"  # 替换为实际存储图片的文件夹路径
ALLOWED_IMG_EXT = (".jpg", ".jpeg", ".png", ".gif", ".webp")  # 允许上传的图片格式
UPLOAD_INTERVAL = 3  # 单张图片上传后的等待时长,单位秒,避免触发限流

def upload_single_image(file_path):
    media = api.media_upload(file_path)
    # 提取不含后缀的文件名作为推文内容,兼容全平台路径规则
    tweet_text = os.path.splitext(os.path.basename(file_path))[0]
    api.update_status(tweet_text, media_ids=[media.media_id_string])
    print(f"上传完成:{tweet_text}")

if __name__ == "__main__":
    # 筛选文件夹内所有符合格式要求的图片
    img_list = []
    for file_name in os.listdir(TARGET_IMG_FOLDER):
        full_path = os.path.join(TARGET_IMG_FOLDER, file_name)
        if os.path.isfile(full_path) and file_name.lower().endswith(ALLOWED_IMG_EXT):
            img_list.append(full_path)
    
    # 排序规则:默认按文件名字典序升序
    # 可自定义key实现其他排序逻辑,例:按文件创建时间排序 key=lambda x: os.path.getctime(x)
    img_list.sort(key=lambda x: os.path.basename(x))

    # 按顺序逐个上传
    total = len(img_list)
    for idx, img_path in enumerate(img_list, 1):
        print(f"正在上传第 {idx}/{total} 张图片")
        upload_single_image(img_path)
        if idx != total:
            time.sleep(UPLOAD_INTERVAL)
    
    print(f"全部{total}张图片上传完成")

使用说明:

  • 运行前将TARGET_IMG_FOLDER的值替换为你实际存储图片的文件夹绝对/相对路径
  • 如果需要调整上传顺序,只需修改img_list.sort()的key参数即可,比如要按文件名中的数字序号排序,可以编写正则提取文件名中的数字作为排序依据
  • 替换了原代码中手动拆分路径的逻辑,使用os.path内置方法处理路径,可兼容Windows、macOS、Linux不同系统的路径分隔符,不会出现跨平台路径解析错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:15:43