如何使用预先输入的文件名保存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
相关产品推荐
相关产品推荐

