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

Python自动填表机器人读取文本文件数据填充表单问题求助

问题分析与解决方案

核心问题

  1. 文件读取与变量赋值错误
    你当前代码读取文件内容到read_变量后,未将其转换为可索引的列表赋值给content,直接使用content[0]会触发NameError;若实际运行时填充了字符串"content[0]",则是误将变量名写成了字符串字面量(比如Phoneinput = "content[0]")。同时file.read()会把整个文件读成单个字符串,无法直接按行索引数据。
  2. 文件资源未合理管理
    直接用open()打开文件后未关闭,可能导致资源泄漏,且代码鲁棒性差。

修正后的代码

if inputchoice == '2':  
    # 用with上下文管理器自动处理文件关闭,避免资源泄漏
    with open('info.txt', 'r') as file:
        # 按行读取并去除每行的换行符、空白字符,生成可索引的列表
        content = [line.strip() for line in file.readlines()]
    
    # 检查文件行数是否满足需求,避免索引越界
    if len(content) < 9:
        print("info.txt内容行数不足,请确保文件有9行数据")
        exit()
    
    # 从列表中提取对应数据
    Phoneinput = content[0]
    FirstNameinput = content[1]
    LastNameinput = content[2]
    Addyinput = content[3]
    Cityinput = content[4]
    Stateinput = content[5]
    Stateinput2 = content[6]
    Zipinput = content[7]
    Emailinput1 = content[8]

web = webdriver.Chrome()
web.get('https://www.listyourself.net/ListYourself/listing.jsp')
time.sleep(2)

Phone1 = web.find_element("xpath",'/html/body/div/div[2]/div[2]/div[1]/form/div[1]/div[2]/input[1]')
# 若Phoneinput是字符串类型,无需额外str()转换
Phone1.send_keys(Phoneinput)

额外说明

  • 确保info.txt中每行对应一个数据项(第一行手机号、第二行名,依此类推共9行)。
  • line.strip()会清除每行首尾的空格、换行符,避免表单填充时出现多余空白。
  • 新增的长度检查可提前发现文件内容缺失问题,防止运行时崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:10:02