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

启动脚本报错IndexError:如何修复main.py的sys.argv索引越界问题?

问题解决:批量登录机器人时的IndexError错误

错误原因

IndexError: list index out of range本质是**main.py启动时没有收到足够的命令行参数**,根源是start.py读取账号文件时,部分行的格式解析异常,导致传给main.py的参数不足2个(用户名+密码)。常见触发场景:

  • accts.txt存在空行、格式错误的行(比如没有冒号分隔)
  • 行尾的换行符、空格被误解析为参数的一部分,导致实际参数缺失

解决方案

1. 规范账号文件格式

确保accts.txt每行严格遵循用户名:密码格式,无空行、无多余空格:

user01:passwd01
user02:passwd02
user03:passwd03

2. 修复start.py的账号读取逻辑

增加行内容清理、格式校验,避免无效行启动错误进程:

import subprocess
import time

accounts = []

with open("accts.txt", "r") as f:
    for line in f.readlines():
        # 移除行首尾的换行、空格等空白字符
        line_clean = line.strip()
        # 跳过空行
        if not line_clean:
            continue
        # 分割用户名和密码
        acc_parts = line_clean.split(":")
        # 校验格式是否正确
        if len(acc_parts) != 2:
            print(f"跳过无效行: {line}")
            continue
        # 再次清理每个字段的空白
        username = acc_parts[0].strip()
        password = acc_parts[1].strip()
        # 跳过空用户名/密码的账号
        if not username or not password:
            print(f"跳过无效账号: {line}")
            continue
        accounts.append((username, password))

pList = []
for acc in accounts:
    p = subprocess.Popen(['python', 'main.py', acc[0], acc[1]])
    pList.append(p)
    time.sleep(2)

3. 给main.py增加参数校验

在main.py开头加入参数检查,提前报错避免崩溃:

import sys

# 校验命令行参数数量
if len(sys.argv) != 3:
    print("使用方式:python main.py <用户名> <密码>")
    sys.exit(1)

username = sys.argv[1]
password = sys.argv[2]

# 后续原有代码...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:06:27