有两个脚本p1.py和p2.py。
p1.py有类似的
if (day=='01'): /*where day=time.strftime("%d")*/
wb=p2.py(day)
for i in range(1,day_list+1): /* genrates sheet equal to number of days in a month)
wb.copy_worksheet(wb['temp'])
ws=wb['temp Copy']
ws.title=str(i)
现在p2.py具有使用openpyxl:加载excel工作簿的功能
wb=load_workbook(filename='.........abc.xlsx')
return wb
现在是p1.py:
if namesheet in wb.sheetnames: /* `namesheet:
chk=day[:1]
if(chk=='0'):
namesheet=day[1:]
else
namesheet=day */
/*do something */
在这里,如果条件我得到错误:
name 'wb' is not defined
Traceback (most recent call last):
File "E:AshimTestmyscriptAuto_Report.py", line 133, in <module>
if namesheet in wb.sheetnames:
NameError: name 'wb' is not defined
有人能帮忙吗。我认为wb只是第一个if语句的一部分。
我是python新手,这个问题怎么解决??
或者,您可以尝试从'p1.py'中的'p2.py'导入load_workbook函数,例如:
from py2 import load_workbook
之后,已经在p1.py中运行
wb=load_workbook(filename='.........abc.xlsx')
if namesheet in wb.sheetnames:
...
...
oHH!!!多么愚蠢的错误啊。要加载模板的if语句仅在本月的第一天起作用。这里的逻辑是错误的,因为在休息日,模板没有加载,因为它没有输入if语句,因此wb没有值,也没有声明,所以没有定义。