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

Python处理HTML表格转Excel时如何传入待生成文件名作为输入参数

问题修复方案

你遇到的报错核心是两步操作的文件名不匹配:第一步将爬取的表格存储为{ship_name}.xlsx,但第二步读取数据时硬编码了固定文件名aase.xlsx,二者不一致自然找不到对应文件。
你可以直接复用第一步的船舶名称参数作为统一文件名,也可以新增输入项让用户自定义输出文件名,修改后的代码如下:

import pandas as pd
import os
import openpyxl

# 读取输入参数
webpage = input("请输入目标网页地址: ")
ship_name = input("请输入船舶名称: ")
# 如需完全自定义输出文件名可新增下面这行输入,不需要直接删除即可
# output_filename = input("请输入输出Excel文件名: ")

# 统一目标文件名,使用自定义文件名的话替换成output_filename即可
target_filename = f"{ship_name}.xlsx"

# 爬取HTML表格并存储
df = pd.read_html(webpage, skiprows=[7,14,15,16], index_col=None)
df[0].to_excel(target_filename, index=False)

# 清理数据
wb = openpyxl.load_workbook(target_filename)
sheet = wb['Sheet1']
status = sheet.cell(sheet.min_row, 1).value
print(status)
sheet.delete_rows(1)
sheet.delete_cols(3,2)
wb.save(target_filename)

如果需要支持脚本运行时直接通过命令行传参(无需交互式输入),可以使用argparse库实现,修改方案如下:

import pandas as pd
import os
import openpyxl
import argparse

# 初始化参数解析器
parser = argparse.ArgumentParser()
parser.add_argument('--webpage', type=str, required=True, help='目标网站URL')
parser.add_argument('--ship-name', type=str, required=True, help='船舶名称')
parser.add_argument('--output-file', type=str, default=None, help='输出Excel文件名,不传则默认使用船舶名称')
args = parser.parse_args()

# 生成目标文件名
target_filename = args.output_file if args.output_file else f"{args.ship_name}.xlsx"

# 爬取、存储、清理逻辑
df = pd.read_html(args.webpage, skiprows=[7,14,15,16], index_col=None)
df[0].to_excel(target_filename, index=False)

wb = openpyxl.load_workbook(target_filename)
sheet = wb['Sheet1']
status = sheet.cell(sheet.min_row, 1).value
print(status)
sheet.delete_rows(1)
sheet.delete_cols(3,2)
wb.save(target_filename)

命令行参数运行示例:
python 你的脚本文件名.py --webpage "https://xxx.xxx" --ship-name "船舶名称" --output-file "自定义文件名.xlsx"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:18:01