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

Python循环实现用户输入驱动的HTML生成脚本优化需求问询

动态生成多组变量的HTML生成脚本

没问题,我帮你把脚本改成支持动态指定变量组数量的版本,循环收集每组信息后自动生成可部署的HTML文件。下面是完整的实现方案:

完整代码实现

def get_valid_integer(prompt):
    """辅助函数:获取用户输入的有效正整数,处理输入错误"""
    while True:
        try:
            num = int(input(prompt))
            if num > 0:
                return num
            else:
                print("请输入大于0的整数哦!")
        except ValueError:
            print("输入不合法,请输入一个整数!")

def collect_video_data(num_groups):
    """循环收集指定组数的视频信息"""
    video_list = []
    for i in range(num_groups):
        print(f"\n===== 请输入第 {i+1} 组视频信息 =====")
        video_id = input("视频编号:")
        description = input("视频描述:")
        folder_name = input("文件夹名称:")
        # 将每组信息存入字典,添加到列表
        video_list.append({
            "id": video_id,
            "desc": description,
            "folder": folder_name
        })
    return video_list

def generate_html(video_data, output_file="video_list.html"):
    """根据收集的信息生成HTML文件"""
    # HTML模板,用循环插入每组视频的内容
    html_template = f"""
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>视频列表</title>
    <style>
        .video-item {{
            border: 1px solid #ccc;
            padding: 15px;
            margin: 10px 0;
            border-radius: 5px;
        }}
        .video-id {{
            font-weight: bold;
            color: #2c3e50;
        }}
    </style>
</head>
<body>
    <h1>视频资源列表</h1>
    {''.join([f'''
    <div class="video-item">
        <p class="video-id">视频编号:{item['id']}</p>
        <p>描述:{item['desc']}</p>
        <p>文件夹路径:<code>{item['folder']}</code></p>
    </div>
    ''' for item in video_data])}
</body>
</html>
    """
    # 写入文件
    with open(output_file, "w", encoding="utf-8") as f:
        f.write(html_template.strip())
    print(f"\nHTML文件已成功生成:{output_file}")

if __name__ == "__main__":
    print("欢迎使用视频列表HTML生成工具!")
    group_count = get_valid_integer("请输入需要生成的变量组总数:")
    videos = collect_video_data(group_count)
    generate_html(videos)

代码关键部分解释

  • 输入验证:用get_valid_integer函数确保用户输入的是有效的正整数,避免因为输入非数字或负数导致程序崩溃。
  • 循环收集数据:collect_video_data函数根据用户指定的组数,循环询问每组的三个字段,把所有数据存在列表里(每个元素是一个字典,方便后续读取)。
  • 动态生成HTML:在HTML模板里用列表推导式循环拼接每组视频的HTML代码,这样不管用户输入多少组,都能自动生成对应的内容。
  • 样式优化:给HTML加了简单的CSS样式,让页面看起来更整洁,部署到Web服务器后直接就能用。

使用示例

运行脚本后,会出现如下交互:

欢迎使用视频列表HTML生成工具!
请输入需要生成的变量组总数:3

===== 请输入第 1 组视频信息 =====
视频编号:V001
视频描述:Python入门教程
文件夹名称:python_basic

===== 请输入第 2 组视频信息 =====
视频编号:V002
视频描述:Web开发实战
文件夹名称:web_dev

===== 请输入第 3 组视频信息 =====
视频编号:V003
视频描述:数据可视化教程
文件夹名称:data_viz

HTML文件已成功生成:video_list.html

生成的HTML文件可以直接上传到Nginx、Apache等Web服务器,访问就能看到所有视频的信息列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:30:24