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

Python循环生成Excel文件如何仅导出指定Gruppe-Team组合文件

问题背景

现有Python代码通过两层嵌套循环遍历Gruppe、Team两个列表,调用pandas的read_html抓取网页表格后,会导出两个列表所有两两组合对应的积分榜、赛程CSV文件,共生成4组文件。实际仅需要生成指定一一配对的文件,排除错配的组合。
原代码如下:

#import requests
from pandas import pandas as pd
base_url = "https://baden.liga.nu/cgi-bin/WebObjects/nuLigaTENDE.woa/wa/groupPage?championship=B2+S+2022&group="
Gruppe = ["1","24"] 
Team = ["H1","H2"] 

#Tabelle & Spielplan
for element in Gruppe:
    df = pd.read_html(base_url+str(element), index_col=0)
    for name in Team:
        df[0].to_csv('Exporte/Gruppe_'+str(element)+'_'+str(name)+'_Tabelle.csv', index = False)
        df[1].to_csv('Exporte/Gruppe_'+str(element)+'_'+str(name)+'_Spielplan.csv', index = False)

需要的目标配对为:

  • Gruppe = "1" 对应 Team = "H1"
  • Gruppe = "24"(若你实际需要的分组ID为2,直接替换对应值即可)对应 Team = "H2"
实现方案

放弃两层嵌套的笛卡尔积循环,直接定义需要的一一配对元组列表,单次循环遍历所有目标配对即可。同时可以优化原代码的重复请求问题:原嵌套循环中同一个分组网页会被请求2次,优化后每个分组仅请求1次,运行效率更高。

修正后完整代码
from pandas import pandas as pd
import os

# 自动创建导出目录,避免首次运行因文件夹不存在报错
os.makedirs("Exporte", exist_ok=True)

base_url = "https://baden.liga.nu/cgi-bin/WebObjects/nuLigaTENDE.woa/wa/groupPage?championship=B2+S+2022&group="
# 直接配置所有需要的目标配对,按(分组ID, 队伍名)格式填写
target_matches = [
    ("1", "H1"),
    ("24", "H2")
]

for gruppe_id, team_name in target_matches:
    # 每个分组仅发起一次网页请求
    table_list = pd.read_html(f"{base_url}{gruppe_id}", index_col=0)
    # 导出对应积分榜、赛程文件
    table_list[0].to_csv(f"Exporte/Gruppe_{gruppe_id}_{team_name}_Tabelle.csv", index=False)
    table_list[1].to_csv(f"Exporte/Gruppe_{gruppe_id}_{team_name}_Spielplan.csv", index=False)
逻辑说明
  • 两层嵌套循环会自动枚举两个列表的所有可能组合,适合需要全量配对的场景,不符合当前按固定对应关系生成文件的需求
  • 固定配对的遍历方式只会生成你明确配置的组合,不会产生多余的错配文件
  • f-string的写法比原来的字符串拼接可读性更高,不容易出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:54:20