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

如何使用预先输入的文件名保存Python操作后的Excel工作簿

核心错误原因

你代码里出现了变量覆盖问题:

  • 第一行你将用户输入的文件名字符串存入了unit_list变量
  • 第二行调用load_workbook加载工作簿后,你又把返回的工作簿对象赋值给了同一个unit_list变量,原本存储的文件名被直接覆盖
  • 最后调用save方法时,你传入的filename参数是已经变成工作簿对象的unit_list,而非字符串格式的文件名,因此触发报错

修正方案

单独用不同变量存储文件名和工作簿对象即可,修正后的代码如下:

# 单独用file_name变量存储输入的文件名
file_name = input("Please enter the file name: ")
# 工作簿对象存到unit_list变量,避免覆盖文件名
unit_list = load_workbook(file_name)
all_units = unit_list["Sheet1"]
picked_units = unit_list["Sheet2"]

row_count = all_units.max_row
col_count = all_units.max_column

need_units = int(input("How many units need to be checked? "))

nul = []

while len(nul)+1 <= need_units:
    unit = rand_seed(row_count)
    if unit not in nul:
        nul.append(unit)
        for j in range(1, col_count+1):
            c = all_units.cell(row=unit+1, column=j)
            picked_units.cell(row=len(nul), column=j).value = c.value

# 保存时传入存了文件名的file_name变量即可
unit_list.save(filename=file_name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:15:04