gpt4 book ai didi

python - 在循环中创建变量然后赋值

转载 作者:太空宇宙 更新时间:2023-11-04 04:01:35 24 4
gpt4 key购买 nike

我试图在循环内创建变量,然后在同一个循环迭代中为它们赋值。我的代码失败了,我知道为什么,但不知道如何修复它。我将 Python 3.6 与所有导入包的当前版本一起使用。这是我的代码:

import openpyxl

months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

for month in months:
filepath = 'C:\codes\Furnace_time_log\\2019\\' + month + '_2019.xlsx'
workbook_name = month+'_wb'
workbook_name = openpyxl.load_workbook(filepath)
sheet_name = month+'_sheet'
sheet_name = workbook_name.get_sheet_by_name('Sheet1')

我想要的是 12 个名为“January_sheet”、“February_sheet”...的 openpyxl 工作表对象

在我的代码的前面,我有以下示例,它完全按照预期的方式工作。这就是我错误代码逻辑的基础:

head_wb = openpyxl.load_workbook('C:\codes\Furnace_time_log\head.xlsx')
head_sheet = head_wb.get_sheet_by_name('Sheet 1')

我正在处理一个 Excel 文件,其中每一行都包含一个日期和许多其他有用的信息。如果第 x 行的日期是一月,我需要将相邻数据放在一个单独的 XLSX 文档(“January_2019.xlsx”)中,我可以通过 January_sheet 对象对其进行编辑。

关于如何做到这一点有什么建议吗?另外,我不关心性能。此代码只需在完整数据集上运行一次。我意识到可能有一种比同时打开 12 个 openpyxl 工作簿和工作表更有效的方法。话虽如此,我们欢迎任何更好的方法来实现这一目标。

最佳答案

我根本不知道你的界面,但这是我收集到的:

import openpyxl

months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

sheets = {}

for month in months:
filepath = 'C:\\codes\\Furnace_time_log\\2019\\' + month + '_2019.xlsx'
workbook = openpyxl.load_workbook(filepath)
sheet_name = month + '_sheet'
sheet = workbook_name.get_sheet_by_name(sheet_name)
sheets[month] = sheet

假设您的工作表名为 xxxx_month(例如 January_month,区分大小写),而不是您最初使用的 Sheet1。完成此操作后,您将拥有一个将月份名称映射到工作表对象的字典。

如果我所做的事情没有意义,请告诉我,我会进行编辑。

关于python - 在循环中创建变量然后赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com