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

Python+Selenium如何随机选取txt文件读取文本并完成自动输入

问题说明

原有代码的核心错误是对open()函数的用法有误:Python内置的open()方法单次仅支持打开一个文件,不支持同时传入多个文件路径参数,因此无法实现多文件随机选择读取的预期效果。

修正后实现方案

实现逻辑拆解:

  • 先将所有caption类txt文件的路径统一存入列表
  • 调用random.choice()从路径列表中随机选中一个目标文件
  • 用with上下文管理器打开选中文件读取全量文本,自动释放文件句柄,避免资源泄漏
  • 按原有业务逻辑完成剪贴板复制、随机等待、Selenium定位输入的操作

*注意点:

  • 原代码中random.randrange(5,6)只会返回固定整数5,如果需要5-6秒区间的随机时长(包含小数秒),需要替换为random.uniform(5,6)
  • 新版Selenium已废弃find_element_by_css_selector这类旧定位API,推荐使用By类指定定位方式的新写法,避免版本兼容报错*

完整可运行代码如下:

import random
import time
import pyperclip
from selenium.webdriver.common.by import By

# 所有caption文件路径统一维护在列表中,后续新增文件直接追加即可
caption_files = [
    "caption-1.txt",
    "caption-2.txt",
    "caption-3.txt",
    "caption-4.txt"
]

# 随机选一个文件读取内容
selected_file = random.choice(caption_files)
with open(selected_file, "r", encoding="utf-8") as f:
    caption_text = f.read()

# 复制内容到剪贴板
pyperclip.copy(caption_text)
clipboard_content = pyperclip.paste()

# 随机等待5-6秒
time.sleep(random.uniform(5, 6))

# 定位文本域输入内容
caption_input = driver.find_element(By.CSS_SELECTOR, "textarea._ablz._aaeg")
caption_input.send_keys(clipboard_content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:36:19